1 2009-02-10 Rober Carr <carrr@rpi.edu>
3 Bug 569633 – Typelib compiler fails with vararg callbacks
5 * girepository/girparser.c: Also filter out callback functions
6 which take vararg arguments.
8 2009-02-10 Xan Lopez <xan@gnome.org>
10 Bug 570903 - Add information about -I flag to scanner manpage
12 * docs/g-ir-scanner.1: Add info about -I flag.
14 2009-02-06 Owen Taylor <otaylor@redhat.com>
16 * gir/xlib-2.0.gir: Add KeySym and KeyCode to the dummy
19 2009-02-04 Johan Dahlin <jdahlin@async.com.br>
21 * girepository/Makefile.am:
22 * girepository/girffi.c (g_callable_info_get_ffi_arg_types),
23 (g_callable_info_get_ffi_return_type),
24 (g_callable_info_prepare_closure), (g_callable_info_free_closure):
25 * girepository/girffi.h:
26 Add utility functions for invocing closures given a GICallableInfo
29 2009-02-03 Andreas Rottmann <a.rottmann@gmx.at>
31 * tests/scanner/utility.h (UtilityTaggedValue): Make the union
33 (UtilityByte): New union typedef with an unnamed struct in it.
35 * giscanner/transformer.py (Transformer._create_struct): Create
36 unnamed structs for symbols with a None ident.
37 (Transformer._create_union): Likewise.
39 * giscanner/girwriter.py (GIRWriter._write_record): Allow name
41 (GIRWriter._write_union): Likewise.
43 * girepository/girparser.c (start_struct): Allow a NULL name for
45 (start_union): Likewise.
47 * tests/scanner/utility.h (UtilityTaggedValue): New struct
48 typedef, which has a nested union member.
49 * tests/scanner/utility-expected.gir: Adapted.
51 * giscanner/transformer.py (Transformer._create_member): Create
52 struct/union members if appropriate.
53 (Transformer._create_struct, Transformer._create_union): Allow for
54 structs/unions without a C type.
56 * giscanner/glibtransformer.py (GLibTransformer._resolve_field):
57 We don't need to resolve non-typef'd
58 (GLibTransformer._resolve_field): Add cases for non-typedef'd
59 struct/union "fields".
61 * giscanner/girwriter.py (GIRWriter._write_record): Allow for
62 records without a C type.
63 (GIRWriter._write_field): structs and unions may appear in places
66 2009-02-03 Andreas Rottmann <a.rottmann@gmx.at>
68 * girepository/girparser.c (ParseContext): Removed member
69 current_node, added node_stack instead.
70 (CURRENT_NODE): New macro, returns the current node (top of
72 (pop_node, push_node): New functions; pop or push a node from
74 Rest of the file adapted to these changes, which are necessary
75 for supporting nested structs/and unions.
77 2009-02-02 Dan Winship <danw@gnome.org>
79 * girepository/ginfo.c (g_registered_type_info_get_g_type): handle
80 the special case for GObject, whose glib:get-type is listed as
83 2009-02-02 Andreas Rottmann <a.rottmann@gmx.at>
85 Bug 569408 – Scanner doesn't handle arbitrary typedefs correctly
87 * giscanner/glibtransformer.py (GLibTransformer._create_gobject):
88 Treat GInitiallyUnowned specially.
90 Bug 568680 – Scanner misses fields (at least in GObject.Object)
92 * girepository/giroffsets.c (compute_struct_field_offsets): Fix
93 handling of callbacks (a callback member clobbered the size
96 * giscanner/transformer.py (Transformer._create_compound): Use
97 the (empty) compound created by a typedef if present; this means
98 that fields will no longer get lost.
100 * giscanner/transformer.py (Transformer._create_compound): New
101 method, contains logic common to _create_union and _create_struct.
102 (Transformer._create_struct, Transformer._create_union): Rewritten
103 in terms of _create_compound.
105 * gir/GObject-2.0.xpath: Some new assertations of the presence
107 * tests/offsets/Makefile.am, tests/offsets/offsets.h: Added test
108 for object field offsets.
110 2009-02-02 Andreas Rottmann <a.rottmann@gmx.at>
112 Bug 563469 – Arrays not treated correctly in struct offset calculation
114 * tests/offsets/offsets.h (OffsetsArray): New struct, containing a
117 * tests/offsets/gen-gitestoffsets (FIELD_RE): Handle arrays.
119 * girepository/giroffsets.c (get_interface_size_alignment):
120 Refactored to make it more general, now takes a GIrNodeType*
121 instead of a GIrNodeField*, plus an additional 'who' parameter
122 that denotes what the size/alignment is calculated for.
123 (get_type_size_alignment): New function, refactored version of
124 get_field_size_alignment().
125 (get_field_size_alignment): Implemented in terms of
126 get_type_size_alignment().
127 (get_type_size_alignment): Handle array types correctly.
129 2009-01-28 Johan Bilien <jobi@via.ecp.fr>
131 * tests/scanner/annotation-1.0-expected.gir: add missing
134 2009-01-27 Johan Dahlin <jdahlin@async.com.br>
137 * gir/fontconfig-2.0.gir:
138 * gir/freetype2-2.0.gir:
139 * gir/libxml2-2.0.gir:
140 * gir/xfixes-4.0.gir:
143 Remove shared-library tags for these too.
145 2009-01-27 Johan Dahlin <jdahlin@async.com.br>
148 Remove shared-library which removes the build
149 time dependency on mesa.
151 2009-01-27 Dan Winship <danw@gnome.org>
155 * giscanner/scannerparser.y: Fix the "Ignoring non-UTF-8 constant
156 string" error to print the right value.
158 * tests/scanner/annotation.c (backslash_parsing_tester)
159 (backslash_parsing_tester_2): make these non-static to avoid a
161 (annotation_object_string_out)
162 (annotation_string_zero_terminated): fix return values
164 * tests/scanner/annotation.h (annotation_object_with_voidp):
167 * tests/scanner/gtkfrob.c:
168 * tests/scanner/gtkfrob.h (gtk_frob_language_manager_get_default):
169 fix prototype. (s/()/(void)/).
171 * tools/compiler.c (format_output): fix signed/unsigned warning.
172 Output a prototype for register_typelib() to avoid warnings later.
174 2009-01-26 Johan Dahlin <jdahlin@async.com.br>
176 * tests/everything/everything.c (test_callback):
177 * tests/everything/everything.h:
178 Add a couple of callback tests.
180 2009-01-26 Johan Dahlin <jdahlin@async.com.br>
182 * girepository/ginfo.c (g_base_info_unref):
183 Only unref the repository if it's actually set.
185 2009-01-23 Johan Dahlin <jdahlin@async.com.br>
187 * tests/everything/everything.c (test_enum_param):
188 * tests/everything/everything.h:
190 Add an enum param test function
192 2009-01-21 Johan Dahlin <jdahlin@async.com.br>
195 Post-release version bump
198 2009-01-21 Johan Dahlin <jdahlin@async.com.br>
202 2009-01-21 Johan Dahlin <jdahlin@async.com.br>
204 Bug 562622 – Errordomains missing
206 * giscanner/girwriter.py:
207 * giscanner/glibast.py:
208 * giscanner/glibtransformer.py:
209 * tests/scanner/Makefile.am:
210 * tests/scanner/foo-1.0-expected.gir:
211 * tests/scanner/foo-1.0-expected.tgir:
212 * tests/scanner/foo.c (foo_error_get_type), (foo_error_quark):
213 * tests/scanner/foo.h:
215 2009-01-20 Johan Dahlin <jdahlin@async.com.br>
217 * giscanner/scannerlexer.l:
218 Increase the buffer size to 1M, so
219 gtkalias.h can be parsed.
221 2009-01-20 Johan Dahlin <jdahlin@async.com.br>
223 * giscanner/glibtransformer.py:
224 When trying to map functions to structs, do
225 not require a public structure to exist, should
226 fix Gst gir generation in.
228 2009-01-20 Johan Dahlin <jdahlin@async.com.br>
230 Bug 562615 – Struct methods missing
232 * giscanner/annotationparser.py:
234 * giscanner/girwriter.py:
235 * giscanner/glibast.py:
236 * giscanner/glibtransformer.py:
237 * tests/scanner/foo-1.0-expected.gir:
238 * tests/scanner/foo-1.0-expected.tgir:
240 2009-01-16 Dan Winship <danw@gnome.org>
242 * gir/GL-1.0.gir: add back GLvoid, which got lost during the
243 gir-repository -> gobject-introspection migration
245 2009-01-15 Johan Dahlin <jdahlin@async.com.br>
247 * gir/freetype2-2.0.gir: add FT_Int32
248 * gir/xft-2.0.gir: add XftFont
249 * girepository/gdump.c (g_irepository_dump):
250 Report errors when an invalid type is encountered
251 * giscanner/glibtransformer.py:
252 Make the error message a bit nicer.
254 Part of preparating for gir generating inside pango.
256 2009-01-15 Johan Dahlin <jdahlin@async.com.br>
261 * gir/fontconfig-2.0.gir:
262 * gir/freetype2-2.0.gir:
263 * gir/libxml2-2.0.gir:
264 * gir/xfixes-4.0.gir:
268 Move over the hand-written girs from gir-repository
269 so upstream libraries depending on these can avoid
270 a gir-repository dependency.
272 2009-01-15 Johan Dahlin <jdahlin@async.com.br>
274 Bug 567813 – Everything should be versioned
277 * girepository/Makefile.am:
278 * girepository/girepository.c (init_globals):
279 * girepository/girparser.c (locate_gir):
280 * giscanner/dumper.py:
281 * giscanner/transformer.py:
282 * gobject-introspection-1.0.pc.in:
283 * tests/everything/Makefile.am:
284 * tests/invoke/Makefile.am:
285 * tests/offsets/Makefile.am:
286 * tests/repository/Makefile.am:
287 * tests/scanner/Makefile.am:
290 2009-01-13 Johan Dahlin <jdahlin@async.com.br>
292 Bug 555036 – put gtk-doc in GIR
294 * giscanner/annotationparser.py:
296 * giscanner/girwriter.py:
297 * giscanner/glibast.py:
298 * tests/scanner/annotation-1.0-expected.gir:
299 * tests/scanner/annotation.h:
300 * tests/scanner/foo-1.0-expected.gir:
302 2009-01-13 Johan Dahlin <jdahlin@async.com.br>
304 * giscanner/cachestore.py (CacheStore.load): Catch AttributeError
305 which seems to be occasionally raised for Record.
307 * giscanner/annotationparser.py:
308 Fix a bug where \n was not present in a comment
310 2009-01-12 Johan Dahlin <jdahlin@async.com.br>
312 Bug 562467 – Property annotation
314 * giscanner/annotationparser.py:
315 * tests/scanner/annotation-1.0-expected.gir:
316 * tests/scanner/annotation-1.0-expected.tgir:
317 * tests/scanner/annotation.c (annotation_object_set_property),
318 (annotation_object_get_property), (annotation_object_class_init):
320 Annotations are parsed for properties.
322 2009-01-12 Johan Dahlin <jdahlin@async.com.br>
324 Bug 546739 – Introspection should know precise signal parameter types
326 * giscanner/annotationparser.py:
327 * tests/scanner/annotation-1.0-expected.gir:
328 * tests/scanner/annotation-1.0-expected.tgir:
329 * tests/scanner/annotation.c (annotation_object_class_init):
331 Annotations are parsed for signals, the (type) annotation is introduced.
333 2009-01-12 Johan Dahlin <jdahlin@async.com.br>
335 Bug 563591 – Flags not recognized when there is no introspection data
338 * giscanner/girwriter.py:
339 * giscanner/giscannermodule.c (type_get_is_bitfield):
340 * giscanner/glibast.py:
341 * giscanner/glibtransformer.py:
342 * giscanner/scannerparser.y:
343 * giscanner/sourcescanner.c (gi_source_type_copy):
344 * giscanner/sourcescanner.h:
345 * giscanner/sourcescanner.py:
346 * giscanner/transformer.py:
347 * tests/scanner/foo-1.0-expected.gir:
348 * tests/scanner/foo-1.0-expected.tgir:
349 * tests/scanner/foo.h:
351 Large parts of this patch was done by Jürg Billeter.
353 2009-01-12 Havoc Pennington <hp@pobox.com>
355 Bug 563386 – scanner ignores "const" on boxed return values
357 * tests/everything/everything.c (test_simple_boxed_a_const_return):
358 * tests/everything/everything.h:
360 This adds just the tests specified in the bug above, the fix itself
361 was included in Bug 563794
363 2009-01-03 Andreas Rottmann <a.rottmann@gmx.at>
365 Bug 566404 – Annotations for GLib
367 * gir/glib-2.0.c: Added allow-none annotations for g_thread_init()
368 and g_main_loop_new().
370 2009-01-12 Johan Dahlin <jdahlin@async.com.br>
372 Bug 566419 – Element type of arrays not properly handled in all cases
374 * giscanner/annotationparser.py:
375 * tests/scanner/annotation-1.0-expected.gir:
376 * tests/scanner/annotation-1.0-expected.tgir:
377 * tests/scanner/annotation.c (annotation_object_set_data),
378 (annotation_object_set_data2), (annotation_object_set_data3):
379 * tests/scanner/annotation.h:
381 Based on patch by Andreas Rottmann
383 2009-01-12 Johan Dahlin <jdahlin@async.com.br>
385 Bug 566560 – giscanner.transformer.SkipError
387 * giscanner/transformer.py:
389 Catch SkipError for all nodes, not just functions.
390 Makes it possible to skip unsupported parameter types in
393 2009-01-12 Johan Dahlin <jdahlin@async.com.br>
395 Bug 563794 - Redo annotation parsing & applying
397 Thanks to Colin for helping out considerably in landing this.
399 * giscanner/Makefile.am:
401 * giscanner/dumper.py:
402 * giscanner/girparser.py:
403 * giscanner/giscannermodule.c (pygi_source_scanner_get_comments),
404 (calc_attrs_length), (pygi_collect_attributes), (init_giscanner):
405 * giscanner/glibtransformer.py:
406 * giscanner/scannerlexer.l:
407 * giscanner/sourcescanner.c (gi_source_symbol_unref),
408 (gi_source_scanner_new), (gi_source_scanner_free),
409 (gi_source_scanner_get_comments):
410 * giscanner/sourcescanner.h:
411 * giscanner/sourcescanner.py:
412 * giscanner/transformer.py:
413 * giscanner/xmlwriter.py:
414 * tests/scanner/annotation-1.0-expected.gir:
415 * tests/scanner/annotation-1.0-expected.tgir:
416 * tests/scanner/annotation.c:
417 * tests/scanner/annotation.h:
418 * tests/scanner/foo-1.0-expected.gir:
419 * tests/scanner/foo-1.0-expected.tgir:
420 * tests/scanner/foo.h:
421 * tools/g-ir-scanner:
423 This commit merges the annotation parser rewrite branch.
424 It'll change the annotation parsing to be done completely in python
425 code which will make it easier to do further annotation parsing
428 2009-01-03 Andreas Rottmann <a.rottmann@gmx.at>
430 Bug 563469 – Arrays not treated correctly in struct offset calculation
432 * tests/scanner/foo.h (FooObject): Added field `some_int'.
433 * tests/scanner/foo-1.0-expected.gir,
434 * tests/scanner/foo-1.0-expected.tgir: Adapted.
436 * giscanner/glibtransformer.py (GLibTransformer._create_gobject):
437 carry over object fields from original (struct) node.
438 (GLibTransformer._pair_class_struct): Don't add fields of the
439 class struct to to the node for the class, they should go under a
440 nested <record> element (see also Bug 551738). This is needed as
441 otherwise offset calculation would not work, as the instance
442 fields are mingled with the class fields without a way to
445 2009-01-03 Johan Dahlin <jdahlin@async.com.br>
448 Disable blank line check, it works differently under
449 Python 2.5 from 2.6 and was rather annoying from the start.
451 2008-01-03 Andreas Rottmann <a.rottmann@gmx.at>
453 Bug 556489 – callback annotations
455 * giscanner/transformer.py
457 * tools/generate.c (write_callable_info): Write out the new scope,
458 closure and destroy attributes.
460 * giscanner/transformer.py (Transformer._type_is_callback): New
461 method, checking if a given type is a callback.
462 (Transformer._augment_callback_params): New method; adds
463 information (closure, destroy) to callback parameters.
464 (Transformer._handle_closure, Transformer._handle_destroy): New methods,
465 auxiliary to _augment_callback_params.
466 (Transformer._create_function): Call _augment_callback_params().
467 (Transformer._create_parameter): Handle scope option.
469 (Transformer._create_typedef_callback): New method, creates a
470 callback, and registers it in the typedef namespace
471 (Transformer._create_typedef): Use _create_typedef_callback()
472 instead of the plain _create_callback().
474 * giscanner/ast.py (Parameter): Added callback-related fields.
475 * giscanner/girwriter.py: Write out new Parameter fields.
477 * girepository/girnode.h (GIrNodeParam): Added fields scope,
479 * girepository/gtypelib.h (ArgBlob): Ditto.
480 * girepository/girparser.c (start_parameter): Handle new fields.
482 * girepository/girmodule.c (g_ir_module_build_typelib): Adjust
483 arg_blob_size, bump major version due to this change.
484 * girepository/girnode.c (g_ir_node_get_full_size_internal)
485 (g_ir_node_build_typelib)
486 * girepository/gtypelib.c (g_typelib_check_sanity): ArgBlob size
488 (g_ir_node_build_typelib): Fill in new ArgBlob flags from param.
490 * girepository/girepository.h (GIScope): New enumeration, listing
491 the different possible scopes for callbacks.
493 * girepository/ginfo.c (g_arg_info_get_scope)
494 (g_arg_info_get_closure, g_arg_info_get_destroy): Accessors for
495 callback-related argument indices (callback scope, closure for a
496 callback, destroy notification for a callback).
498 * tests/scanner/: Added testcases for new features.
500 2009-01-03 Jürg Billeter <j@bitron.ch>
503 * giscanner/dumper.py:
504 * giscanner/girparser.py:
505 * giscanner/glibtransformer.py:
506 * giscanner/sourcescanner.py:
507 * giscanner/transformer.py:
508 * giscanner/xmlwriter.py:
510 Fix inconsistencies with PEP8
512 2008-12-21 Johan Dahlin <jdahlin@async.com.br>
515 Annotate transfer, direction and allow none for
516 g_file_load_contents, g_file_load_contents_finish and
517 g_file_load_partial_contents_finish parameters.
519 2008-12-12 Owen Taylor <otaylor@redhat.com>
521 Disable array auto-detection for out-annotated parameters (#563934)
523 If we have a parameter annotated as (out), then having a ctype of
524 'char **' (or similar) doesn't necessarily indicate an array.
526 * giscanner/transformer.py: Skip array-detection logic for
527 (out)-annotated parameters.
528 * tests/scanner/annotation.h tests/scanner/annotation.c
529 tests/scanner/annotation-1.0-expected.gir
530 tests/scanner/annotation-1.0-expected.tgir: Add a test for
531 an (out) string parameter.
533 2008-12-12 Johan Dahlin <jdahlin@async.com.br>
535 * giscanner/dumper.py (DumpCompiler._link): Pass in
536 --tag=CC to libtool to avoid making libtool confused
537 when CC is different from gcc on some systems.
539 2008-12-10 Johan Bilien <jobi@via.ecp.fr>
541 Bug 563998 – Cache the GIBaseInfo for GTypes
543 * girepository/girepository.c (g_irepository_find_by_gtype):
544 add a cache of GType -> GIBaseInfo.
546 2008-12-09 Johan Bilien <jobi@via.ecp.fr>
548 Bug 562545 – Add function taking / returning GValue
550 * tests/everything/everything.[ch]: add a test of function taking and
551 returning "const GValue *"
553 2008-12-09 Johan Dahlin <johan@async.com.br>
555 * giscanner/cachestore.py (CacheStore.store): Use
556 shutil.move instead of os.rename, since it will
557 automatically fall back to copying+remove if the
558 src directory is on a different partition from
561 2008-12-08 Tristan Van Berkom <tristan.van.berkom@gmail.com>
563 Bug 563742 – introspection should record the introduced version of
564 symbols marked with the "Since:" tag
569 * giscanner/girwriter.py:
570 * giscanner/scannerlexer.l:
571 * giscanner/transformer.py:
572 * tests/scanner/annotation-1.0-expected.gir:
573 * tests/scanner/annotation-1.0-expected.tgir:
574 * tests/scanner/annotation.c (annotation_versioned):
575 * tests/scanner/annotation.h:
577 2008-12-08 Johan Dahlin <johan@async.com.br>
579 * giscanner/cachestore.py (_get_cachedir): Don't require
580 HOME to be set and if it set, don't require the
583 2008-12-08 Johan Dahlin <johan@async.com.br>
585 * giscanner/cachestore.py (CacheStore.store): Dump the cache
586 file to a temporary file and rename it the expected filename
587 only when it's completely written.
588 This should make the cache more roboust when run in parallel,
589 and hopefully avoid triggering bugs in Python.
591 2008-12-03 Christophe Fergeau <teuf@gnome.org>
593 Bug 562971 – g-ir-scanner failure on libgpod headers
595 * giscanner/scannerlexer.l: raise YY_BUF_SIZE to 65536 up from the
596 default 16384. Without it, the lexer was aborting with a cryptic
597 error message on source files containing really long comment
600 2008-12-01 Colin Walters <walters@verbum.org>
602 * girepository/gfield.c: Fix memory leak; unref type info we
603 created, not field info
605 2008-11-30 Johan Dahlin <jdahlin@async.com.br>
607 Bug 562289 – Race when removing invalid cache
609 * giscanner/cachestore.py:
610 ENOENT is mapped to a OSError, not IOError.
612 2008-11-27 Johan Dahlin <jdahlin@async.com.br>
614 * gir/glib-2.0.c: Add return value transfer annotation
615 for g_markup_escape_text.
617 2008-11-25 Colin Walters <walters@verbum.org>
619 * tools/g-ir-scanner: Add --libtool option which we expect Automake-using
621 * giscanner/dumper.py: Implement it.
622 * gir/Makefile.am, tests/**/Makefile.am: Use it.
624 2008-11-25 Colin Walters <walters@verbum.org>
626 * tests/scanner/Makefile.am: Remove hand-rolled generation of .tgir; easier
627 to just use a Makefile rule and dependencies. This corresponds with a change
628 made to gir-repository to fix srcdir != builddir issues.
630 2008-11-25 Johan Dahlin <jdahlin@async.com.br>
633 Post release version bump
636 2008-11-25 Johan Dahlin <jdahlin@async.com.br>
641 2008-11-25 Colin Walters <walters@verbum.org>
643 Bug 559705 – Missing association between static methods and classes
645 * docs/typelib-format.txt:
646 * girepository/ginfo.c (g_function_info_get_flags):
647 * girepository/girmodule.c (g_ir_module_build_typelib):
648 * girepository/girnode.c (g_ir_node_get_size),
649 (g_ir_node_build_typelib):
650 * girepository/girparser.c (start_function):
651 * girepository/gtypelib.c (g_typelib_check_sanity),
652 (validate_header), (validate_function_blob):
653 * girepository/gtypelib.h:
655 * giscanner/girwriter.py:
656 * giscanner/glibtransformer.py:
657 * tests/scanner/foo-1.0-expected.gir:
658 * tests/scanner/foo-1.0-expected.tgir:
659 * tests/scanner/foo.h:
661 2008-11-25 Johan Dahlin <jdahlin@async.com.br>
663 * giscanner/ast.py: Define socklen_t as an alias for int32.
665 2008-11-24 Johan Dahlin <jdahlin@async.com.br>
667 * girepository/gdump.c (dump_type): Remove a warning,
668 be less verbose on error on fundamental types.
670 2008-11-23 Johan Dahlin <jdahlin@async.com.br>
672 * giscanner/dumper.py: Add license headers,
673 refactor into a class, avoid some duplication and do some
674 extra pedantic checks.
676 2008-11-23 Johan Dahlin <jdahlin@async.com.br>
678 Make it compilable with -Werror on my system by adding
679 a couple of prototypes and including headers.
681 2008-11-23 Johan Dahlin <jdahlin@async.com.br>
683 Bug 562022 – gobject-introspection needs python headers
685 * configure.ac: fail without python headers present.
688 2008-11-21 Johan Dahlin <jdahlin@async.com.br>
690 Bug 561617 – Return value array annotations
692 * giscanner/transformer.py:
693 * tests/scanner/annotation.c (annotation_return_array):
694 * tests/scanner/annotation.h:
695 Add support for (array) for return value annotations as well.
697 2008-11-20 Johan Bilien <jobi@via.ecp.fr>
699 * tests/everything/everything.[ch]: add a test function which calls a
702 2008-11-19 Johan Dahlin <jdahlin@async.com.br>
704 * giscanner/cachestore.py:
705 Catch ValueError exceptions.
707 2008-11-18 Tommi Komulainen <tommi.komulainen@iki.fi>
709 * tests/scanner/Makefile.am (barapp_SOURCES): fix builddir != srcdir
711 2008-11-18 Andreas Rottmann <a.rottmann@gmx.at>
713 * girepository/girnode.c (g_ir_node_build_typelib): Use sizeof()
714 instead of hard-coding struct sizes.
716 2008-11-18 Owen Taylor <otaylor@redhat.com>
718 Bug 561296 - Add "storage type" to the typelib data for enums
720 In order to set and get enum and flag fields in structures, we need
721 to know the integral type that the enumeration is stored as. We are already
722 computing that at compile time in order to compute struct offsets, so the
723 easiest thing to do is to save that in the typelib.
725 * docs/typelib-format.txt girepository/girnode.[ch] girepository/giroffsets.c
726 girepository/gtypelib.h: Add 'storage_type' to the typelib format for EnumBlob
727 and compute and save it at compile time.
729 * girepository/girepository.h girepository/ginfo.c:
730 Add g_enum_info_get_storage_type().
732 * girepository/gfield.c: Implement reading and writing enum and flags fields
733 based on the storage type.
735 2008-11-18 Owen Taylor <otaylor@redhat.com>
737 Add enums to the Everything test module
739 * tests/everything/everything.[ch]: Add TestEnum and TestFlags to the Everything
740 test module and register them as GTypes.
742 https://bugzilla.gnome.org/show_bug.cgi?id=561296
744 2008-11-18 Johan Dahlin <jdahlin@async.com.br>
746 * giscanner/cachestore.py:
747 Catch BadPickleGet exceptions as well.
749 2008-11-17 Owen Taylor <otaylor@redhat.com>
751 * tests/everything/everything.c: Fix doc comment annotations
752 for test_struct_b_clone() to refer to the right function.
754 2008-11-17 Dan Winship <danw@gnome.org>
756 * giscanner/glibtransformer.py (GLibTransformer.__init__): fix
757 spelling of GHashTable. #561135
759 * tests/scanner/annotation.c (annotation_object_get_hash):
760 * tests/scanner/annotation-1.0-expected.gir:
761 * tests/scanner/annotation-1.0-expected.tgir: add a test of
762 GHashTable annotations
764 2008-11-17 Andreas Rottmann <a.rottmann@gmx.at>
766 * giscanner/ast.py: Change string array match type to be in terms
767 of canonicalized type.
768 * giscanner/transformer.py: Add canonicalize_ctype which gives us
769 a version of a c:type without aliases, so we can deep canonicalize
770 char** to utf8*. Update parse_ctype to use it.
771 * tests/*: Add gtk_init like int*/char*** arg functions for testing.
773 2008-11-16 Colin Walters <walters@verbum.org>
775 * girepository/girepository.c: Ensure we always call init_globals,
776 even if passed a non-default repository.
778 2008-11-16 Colin Walters <walters@verbum.org>
780 Bug 559706 - Interface prerequisites
782 * common.mk: Dep on libgirepository.la for scanner libs so that
783 we rebuild things even if just gdump.c changes.
784 * girepository/gdump.c: Dump prerequisites.
785 * giscanner/ast.py: Add prerequisite list.
786 * giscanner/girparser.py: Parse them from gdump.
787 * giscanner/girwriter.py: Write them.
788 * giscanner/glibtransformer.py: Resolve them.
791 2008-11-16 Owen Taylor <otaylor@redhat.com>
793 Bug 561087 - Respect is_pointer in serialize_type()
795 Add a '*' to the serialization for the cases where we set is_pointer
796 in the type blob we write out depending on node->is_pointer. Don't
797 add the '*' in the cases where is_pointer is set or not set in a
800 http://bugzilla.gnome.org/show_bug.cgi?id=561087
802 2008-11-16 Owen Taylor <otaylor@redhat.com>
804 Bug 560825 – Add size and alignment to typelib
806 Include the size and alignment of structures and unions in the typelib,
807 and add getter methods to retrieve them from GIStructInfo/GIUnionInfo.
809 * docs/typelib-format.txt girepository/gtypelib.h girepository/girnode.c
810 girepository/girmodule.c girepository/gtypelib.c: Add size and alignment
811 to StructBlob and UnionBlob.
813 * girepository/ginfo.c girepository/girepository.h:
814 Add g_[struct|union]_get[size|alignment]().
816 * test/offsets/gen-gitestoffsets: Test overall structure size and alignment.
818 2008-11-16 Owen Taylor <otaylor@redhat.com>
820 Bug 552371 – implement struct field get/set
822 * girepository/gfield.c girepository/girepository.h: Add
823 convenience functions g_field_info_set_field() and
824 g_field_info_get_field() to set and get fields based on the
825 offsets in GIFieldInfo.
827 2008-11-16 Andreas Rottmann <a.rottmann@gmx.at>
829 Bug 560241 - Out-arguments should not be marked as being pointers
832 * girepository/girparser.c: Improved logic for out arguments.
834 2008-11-16 Andreas Rottmann <a.rottmann@gmx.at>
836 Bug 559601 - Pointers in structs/unions unduly treated as arrays
838 * giscanner/transformer.py: Differentiate type creation logic
839 between parameters and struct components.
841 2008-11-15 Colin Walters <walters@verbum.org>
843 * giscanner/dumper.py: Check return code from pkg-config
846 2008-11-14 Johan Dahlin <jdahlin@async.com.br>
848 * tests/everything/everything.c (test_array_int_in),
849 (test_array_gtype_in):
850 * tests/everything/everything.h:
851 Rename the int/gtype array tests. Make the return value
852 useful, an aggregation of the array input values.
854 2008-11-14 Johan Dahlin <jdahlin@async.com.br>
856 * tests/everything/Makefile.am:
857 * tests/everything/everything.c:
858 * tests/everything/everything.h:
859 * tests/everything/gitesttypes.c:
860 * tests/everything/gitesttypes.h:
861 Rename gitesttypes.[ch] to everything.[ch]
863 2008-11-13 Andreas Rottmann <a.rottmann@gmx.at>
865 Bug 560708 – Don't treat arrays that have a length specified as
866 zero-terminated by default
868 * giscanner/transformer.py: Default to non zero terminated for
870 * tests/*: Update, add test for zero vs not.
872 2008-11-13 Andreas Rottmann <a.rottmann@gmx.at>
874 Bug 557788 - Return types for constructors in generated typelib bogus
876 * girepository/girnode.c: Namespace-qualify XREFs; not doing so is
877 obviously broken in the face of duplicate names in different
879 * tests/scanner/*expected.gir: Fix up.
881 2008-11-13 Owen Taylor <otaylor@redhat.com>
883 * girepository/girffi.c: Fix "Unexpected time for time_t"
886 2008-11-13 Colin Walters <walters@verbum.org>
888 Bug 558436 - avoid having scanner load app code
890 * giscanner/cgobject.py: Delete; we no longer load shared
892 * giscanner/dumper.py: Support for linking a library to
893 a stub binary for introspection.
894 * giscanner/glibtransformer.py: Rewrite to use gdump XML
895 from invocation of child binary.
896 * giscanner/transformer.py: Fix up to use fully qualified
897 name in parse tree. Make parse_ctype public so we can use
898 it inside glibtransformer.
899 * tests/scanner/barapp.c: New test, using --program arg
901 * tests/*: Update to use common.mk for invoking scanner.
902 * tools/g-ir-scanner: Add options --program, --program-arg,
904 * docs/g-ir-scanner.1: Update.
906 2008-11-13 Colin Walters <walters@verbum.org>
908 * configure.ac: Depend on Gio, we use it in gdump.c.
909 * girepository/gdump.c: Code to dump GType data to XML.
910 * girepository/girepository.c: Add option group for dumping.
911 * girepository/girepository.h: Define API for the above.
913 2008-11-13 Colin Walters <walters@verbum.org>
915 * common.mk: Add a file to include with Makefile fragments
916 useful for scanner invocation.
918 2008-11-13 Tommi Komulainen <tommi.komulainen@iki.fi>
920 * tests/everything/gitesttypes.c (test_filename_return): Return
921 strings in filename encoding.
923 2008-11-13 Owen Taylor <otaylor@redhat.com>
925 Bug 560253 – Add structure and boxed types to Everything test module
927 * tests/everything/gitesttypes.[ch]: Add examples of:
929 Plain old data structs
930 Plain old data structs with nested fields
932 Plain old data boxed with nested fields
933 More complicated boxed types with internal state
935 2008-11-12 Johan Dahlin <jdahlin@async.com.br>
937 * tests/everything/gitesttypes.c (test_gtype_in):
938 * tests/everything/gitesttypes.h:
939 Add a test of GType arrays, a la gtk_list_store_set_columns.
941 2008-11-12 Owen Taylor <otaylor@redhat.com>
943 Bug 560419 – Cache includes when parsing
945 Keep track of all modules parsed within a GIrParser, and when a
946 module is referenced a second time, use the existing parsed copy
947 instead of reparsing.
949 2008-11-12 Owen Taylor <otaylor@redhat.com>
951 Fix management of ParseContext.includes_modules (#560419)
953 * girepository/girparser.c: Fix some trivial bugs in managing the
954 list of include modules. (Add to module's list twice, not
955 initialized to NULL, not freed.)
957 2008-11-12 Owen Taylor <otaylor@redhat.com>
959 Keep aliases and disguised_structures local to each module (#560419)
961 * girepository/girmodule.[ch]: When parsing, keep keep a separate
962 hash tables of aliases and 'disguised' flags for each module, and
963 store that on the module.
965 After parsing an include merge the aliases/disguised flags to the
968 * girepository/girparser.c: Remove 'prefix_aliases' flag and
969 always prefix aliases/disguised structure types when parsing; this
970 simplifies the code considerably.
972 2008-11-12 Owen Taylor <otaylor@redhat.com>
974 Fix mismatches between .gir name and 'name' attribute (#560419)
976 * tests/boxed.gir tests/constant.gir tests/enum.gir tests/invoke/invoke.c
977 tests/invoke/testfns-1.0.gir tests/object.gir tests/struct.gir: Fix places
978 where the 'name' element of <namespace/> didn't match the filename of the
979 gir, an assumption that the compiler has always expected and now enforces.
981 2008-11-12 Owen Taylor <otaylor@redhat.com>
983 Only allow one <namespace/> element per <repository/> (#560419)
985 * girepository/girparser.c: The logic in girparser.c didn't work
986 very well if there were multiple <namespace/> nodes within a
987 single <repository/> (context->namespace was always the overall
988 filename and not the the name specified in the <namespace/>
989 element for one thing; this would cause aliases to be mis-prefixed
990 in include modules.) Also check that the "name" in the
991 <namespace/> node matches the filename.
993 2008-11-12 Owen Taylor <otaylor@redhat.com>
995 Add a GirParser object to hold the state of a compilation
997 * girepository/girparser.[ch] tools/compiler.c: Add a toplevel
998 GirParser object to hold state that is global across a
999 compilation. Currently just holds the include path, but will
1000 eventually also keep a cached list of parsed modules.
1002 2008-11-12 Tommi Komulainen <tommi.komulainen@iki.fi>
1004 * girepository/girepository.c (find_namespace_latest): Fix
1007 2008-11-12 Tommi Komulainen <tommi.komulainen@iki.fi>
1009 * configure.ac: use 'introspection' component for bugs
1011 2008-11-12 Johan Dahlin <jdahlin@async.com.br>
1013 * tests/everything/gitesttypes.c (test_filename_return):
1014 * tests/everything/gitesttypes.h:
1015 Add a filename return test.
1017 2008-11-12 Tommi Komulainen <tommi.komulainen@iki.fi>
1019 * tests/offsets/Makefile.am (gitestoffsets.c): fix
1020 gen-gitestoffsets invocation with builddir != srcdir
1022 2008-11-12 Johan Dahlin <jdahlin@async.com.br>
1024 * girepository/girepository.c:
1025 Change the element type from utf8 to filename
1026 * girepository/girnode.c (g_ir_node_build_typelib):
1027 Special case filename equally to utf8 here.
1029 2008-11-12 Johan Dahlin <jdahlin@async.com.br>
1032 Remove unused variables, add a dependency of girepository.ch, so when
1033 they change we rebuild the gir automatically.
1035 2008-11-12 Johan Dahlin <jdahlin@async.com.br>
1037 * girepository/girepository.c (g_irepository_get_search_path):
1038 * girepository/girepository.h:
1039 Add a g_irepository_get_search_path, so we can access the search
1042 2008-11-12 Johan Bilien <jobi@via.ecp.fr>
1044 Bug 560474 – g-ir-compiler crashes when compiling the glib gir
1046 * girepository/girparser.c: avoid freeing an uninitialized pointer
1048 2008-11-12 Johan Dahlin <jdahlin@async.com.br>
1051 * giscanner/glibtransformer.py:
1052 * tools/g-ir-scanner:
1053 Add a GIRepository-2.0.gir. Change the libtool lookup slightly
1054 so we can just pass in --library=foo/bar/baz.la and the scanner
1055 does the right thing.
1056 Don't warn for _get_type() functions if they don't take any
1059 2008-11-11 Owen Taylor <otaylor@redhat.com>
1061 Bug 560404 – Prefix types when resolving aliases in included modules
1063 * girepository/girparser.c: When resolving aliases in an included
1064 module, prefix types before looking them up.
1066 2008-11-11 Owen Taylor <otaylor@redhat.com>
1068 Compute field offsets and overall size for object structures
1070 Bug 560326 – Fails to build Gtk-2.0.typelib with "Unexpected non-pointer
1071 field of type object in structure"
1073 Do basic computation of field offsets for objects and interfaces;
1074 this doesn't attempt to address all of the "mess" for virtual
1075 functions described in Bug 560281.
1077 2008-11-11 Tommi Komulainen <tommi.komulainen@iki.fi>
1079 Bug 560308 – g-ir-compiler goes in infinite loop on Gdk-2.0.gir
1081 Based on patch by Johan Bilien.
1083 * giscanner/transformer.py (_create_member, _create_parameter):
1084 Resolve types here as well.
1085 (_resolve_type_name_1): Try resolving using 'ctype' first since
1086 it's least ambiguous. Fixes struct member type resolution with
1087 similarly named types, e.g. Gdk.PangoRendererClass and
1089 * tests/scanner/foo*: Add test.
1091 2008-11-11 Owen Taylor <otaylor@redhat.com>
1093 * girepository/girparser.c: Search provided include dirs before
1094 the default directories.
1096 2008-11-11 Owen Taylor <otaylor@redhat.com>
1098 * girepository/giroffsets.c: Include fully-qualified names in
1101 2008-11-11 Owen Taylor <otaylor@redhat.com>
1103 * girepository/giroffsets.c: Fail gracefully with an informative
1104 error message when recursion is encountered when computing a
1107 2008-11-11 Owen Taylor <otaylor@redhat.com>
1109 * girepository/girparser.c: Remove an unused variable.
1111 2008-11-10 Owen Taylor <otaylor@redhat.com>
1113 Add tests for field offset computations
1115 * tests/offsets/offsets.h: Header file with structure definitions to test
1117 * tests/offsets/gen-gitestoffsets: Generate a C program that computes
1118 field offsets for the structures in offsets.h two ways: using
1119 the information from a generated typelib, and as computed by the
1122 We diff these two versions to test that everything is OK.
1124 2008-11-10 Owen Taylor <otaylor@redhat.com>
1126 Remove field offsets from g-ir-generate output and test inputs
1128 Field offsets are a) architecture dependent so they shouldn't be part
1129 of the architecture-independent gir format which is installed in
1130 datadir. b) Are architecture-dependent so they shouldn't be in test
1133 * girepository/girparser.c: Don't parse offset for fields
1134 * tools/generate.c: Don't parse offset for fields
1135 * tests/*.gir test/scanner/*.tgir: Remove offsets
1137 (Virtual function and discriminator offsets are not removed, as they
1138 aren't fully hooked up to the field-offset computation machinery yet.)
1140 2008-11-10 Owen Taylor <otaylor@redhat.com>
1142 Bug 560252 - Compute field offsets before writing typelib
1144 * girepository/girnode.h: Store the total size and alignment for
1145 GIrNodeStruct/Boxed/Union.
1147 * girepository/giroffset.c: New file implementing computation of
1148 structure field offsets.
1150 * girepository/girnode.c: Compute structure field offsets before
1151 writing types into the typelib.
1153 * docs/typelib-format.txt: Document that a field offset of 0xFFFF
1154 means "unknown". Also fix description of the discriminator_offset
1157 2008-11-10 Owen Taylor <otaylor@redhat.com>
1159 Bug 560250 - Fully parse included modules
1161 For some things, like computing structure offsets to put into the typelib
1162 we need more than just the aliases from included modules. Do a completel
1163 parse of included modules and store in module->included_modules.
1165 Also add g_ir_find_node() to find node information from within the
1166 active set of modules and their includes.
1168 2008-11-10 Owen Taylor <otaylor@redhat.com>
1170 Split g_ir_ffi_get_ffi_type() out from ginvoke.c
1172 Extract a function to convert GITypeTag to ffi_type from the internals
1173 of ginvoke.c. This will be useful in figure out structure alignment.
1175 Also fix handling of gsize and time_t to be portable. (Add a check
1176 to configure.ac to figure out the width of time_t.)
1178 2008-11-10 Owen Taylor <otaylor@redhat.com>
1180 Bug 560248 – "disguised structures"
1182 Certain types like GIConv and GdkAtom are pointers internally but don't
1183 look like pointers when referenced. They have the form.
1185 typedef struct _X *X;
1187 Parse these as structures/records but mark them in the gir with a 'disguised'
1188 attribute so that we know that they need special handling.
1190 In the typelib treat them like any other structure.
1192 2008-11-09 Jürg Billeter <j@bitron.ch>
1195 * giscanner/girwriter.py:
1197 Write throws attribute for virtual functions, fixes bug 559703
1199 2008-11-07 Johan Dahlin <jdahlin@async.com.br>
1201 * giscanner/libtoolimporter.py (LibtoolImporter.find_module): Clear
1202 up some confusion about the second argument to find_module, it's
1203 actually the packages __path__ attribute which we can safely ignore
1205 (LibtoolImporter.load_module): Set module.__loader__ as per PEP 302.
1207 2008-11-07 Owen Taylor <otaylor@redhat.com>
1209 Bug 559737 – Deal with continuations in macros
1211 * giscanner/giscannerlexer.l: Treat continuation lines the same
1212 as regular newlines. This makes the scanner not complain about
1213 #define foo(x) \ <stuff> inside a C file. There's no attempt
1214 however to handle parsing macro definitions split across lines.
1216 2008-11-07 Johan Dahlin <jdahlin@async.com.br>
1218 * giscanner/cachestore.py:
1219 Handle broken cache entries, write only filesystems and
1220 running out of diskspace.
1222 2008-11-07 Owen Taylor <otaylor@redhat.com>
1224 * giscanner/giscannermodule.c (pygi_source_scanner_lex_filename):
1225 Set current_filename before lexing the file so error messages
1226 are reported in the right file.
1228 2008-11-06 Colin Walters <walters@verbum.org>
1230 * tests/everything/*: Add some tests for strv.
1232 2008-11-05 Colin Walters <walters@verbum.org>
1234 * girepository/ginvoke.c (g_function_info_invoke): Don't use
1235 nested scope local variable for error which may go away after
1236 conditional is complete.
1238 2008-11-05 Colin Walters <walters@verbum.org>
1240 * giscanner/scannerlexer.l: Avoid static 256 char buf which we
1241 manipulate hackily; just use GString. This avoids an
1242 uninitialized memory read pointed out by Havoc.
1244 2008-11-04 Johan Dahlin <jdahlin@async.com.br>
1246 * giscanner/__init__.py:
1248 * giscanner/cachestore.py:
1249 * giscanner/cgobject.py:
1250 * giscanner/girparser.py:
1251 * giscanner/girwriter.py:
1252 * giscanner/giscannermodule.c:
1253 * giscanner/glibast.py:
1254 * giscanner/glibtransformer.py:
1255 * giscanner/libtoolimporter.py:
1256 * giscanner/minixpath.py:
1257 * giscanner/odict.py:
1258 * giscanner/sourcescanner.c:
1259 * giscanner/sourcescanner.h:
1260 * giscanner/sourcescanner.py:
1261 * giscanner/transformer.py:
1262 * giscanner/utils.py:
1263 * giscanner/xmlwriter.py:
1265 Relicense the giscanner library under LGPLv2+.
1266 This has been approved by all contributors.
1268 2008-11-01 Owen Taylor <otaylor@redhat.com>
1270 Bug 558848 giparser.py: shared library should be optional
1272 When parsing a .gir, allow the shared-library attribute
1273 of <namespace/> to be missing: this corresponds to the handling
1274 in libgirepository and elsewhere.
1276 2008-11-01 Tommi Komulainen <tommi.komulainen@iki.fi>
1278 Bug 557898 – Fails to build on OSX 10.4
1280 * configure.ac: Check for $shrext_cmds that should be implicitly
1281 available if you're using libtool >= 2.0. If undefined, call
1282 libtool --config explicitly to get its value.
1283 * girepository/gtypelib.c: Remove special case for (non-)Darwin
1284 systems as unneeded.
1286 2008-10-31 Colin Walters <walters@verbum.org>
1288 * COPYING, COPYING.lib, COPYING.tools: Clarify licensing status.
1290 2008-10-31 Johan Dahlin <jdahlin@async.com.br>
1292 * configure.ac: Post release version bump
1295 2008-10-31 Johan Dahlin <jdahlin@async.com.br>
1299 * docs/release-checklist.txt:
1302 2008-10-31 Johan Dahlin <jdahlin@async.com.br>
1304 * Makefile.am: add an upload-release target
1305 * docs/release-checklist.txt:
1306 Release process documentation
1308 2008-10-31 Colin Walters <walters@verbum.org>
1310 Bug 558109 – _g_typelib_init fails to find shared libraries
1312 * transformer/glibtransformer.py: Use ctypes' find_library
1313 on passed libraries and write that for the shared-library
1314 entry. We want to avoid depending on -devel packages.
1316 2008-10-31 Johan Dahlin <jdahlin@async.com.br>
1318 * docs/g-ir-scanner.1:
1319 Document the renaming options.
1321 2008-10-31 Tommi Komulainen <tommi.komulainen@iki.fi>
1323 * giscanner/Makefile.am:
1324 * tests/invoke/Makefile.am:
1325 * tests/repository/Makefile.am: List in-tree libraries first in
1326 LDADD / LIBADD. If installed library is listed first, the
1327 resulting binary will prefer installed version to one in .libs,
1328 possibly making 'make check' behave strangely.
1330 2008-10-30 Tommi Komulainen <tommi.komulainen@iki.fi>
1332 * giscanner/ast.py: map 'id' (ObjC) to 'any' type to stop
1333 gir-repository from choking with gdk/quartz
1335 2008-10-30 Johan Dahlin <jdahlin@async.com.br>
1337 * giscanner/giscannermodule.c (calc_attrs_length),
1338 (pygi_collect_attributes):
1339 * giscanner/xmlwriter.py:
1340 Write a C version of the xml namespace formatter.
1341 Saves 15% of the time it takes to create a gtk gir.
1343 2008-10-30 Johan Dahlin <jdahlin@async.com.br>
1345 * giscanner/xmlwriter.py: Abstract attribute formatting
1346 to a function external to the XMLWriter class.
1348 * giscanner/scannerlexer.l:
1349 Parse and discard __typeof and __attribute.
1351 2008-10-30 Johan Dahlin <jdahlin@async.com.br>
1353 * giscanner/girparser.py:
1354 Remove arguments from the constructor, move them to
1355 separate accessors. Add a new parse_tree method
1356 which takes an element tree instance.
1357 * tools/g-ir-scanner:
1358 Update callsite for this
1360 * giscanner/Makefile.am:
1361 * giscanner/cachestore.py:
1362 * giscanner/transformer.py:
1363 Cache the include parsing. Saves ~25% time when
1364 creating vte (which includes everything up to gtk+).
1366 2008-10-30 Colin Walters <walters@verbum.org>
1368 * giscanner/transformer.py: Don't reparse includes
1369 we've already processed.
1371 2008-10-30 Johan Dahlin <jdahlin@async.com.br>
1373 * giscanner/girparser.py:
1374 * giscanner/transformer.py:
1375 Avoid parsing parameters, types etc when parsing
1376 includes. Should speed up include parsing a bit.
1378 2008-10-30 Johan Dahlin <jdahlin@async.com.br>
1380 * giscanner/girparser.py:
1381 Avoid big if/else and use a dispatch table like
1384 2008-10-30 Johan Dahlin <jdahlin@async.com.br>
1386 * giscanner/transformer.py:
1387 Clean up include parsing and registration.
1389 2008-10-30 Johan Dahlin <jdahlin@async.com.br>
1391 * giscanner/transformer.py:
1394 2008-10-30 Johan Dahlin <jdahlin@async.com.br>
1396 Bug 558383 – builddir != srcdir build fails if giscanner python module not already installed
1399 construct PYTHONPATH just once
1401 * tests/everything/Makefile.am:
1402 * tests/scanner/Makefile.am:
1403 add $(top_srcdir) to PYTHONPATH to
1404 handle builddir != srcdir
1406 * giscanner/libtoolimporter.py:
1407 * giscanner/sourcescanner.py:
1408 Make the libtoolimporter work when distchecking too.
1410 Mostly based on patch by Tommi Komulainen
1412 2008-10-29 Owen Taylor <otaylor@redhat.com>
1414 * giscanner/glibtransformer.py: If a filename of an existing
1415 file is passed to --library, hunt for it directly, rather than
1416 searching for a corresponding library.
1418 2008-10-29 Johan Dahlin <jdahlin@async.com.br>
1420 * giscanner/libtoolimporter.py:
1421 * giscanner/sourcescanner.py:
1422 Clean up the libtool importer a bit. Add a context so we
1423 can use it through a with statement.
1424 Don't just look in the current directory, look in the whole
1427 2008-10-29 Tommi Komulainen <tommi.komulainen@iki.fi>
1429 Bug 558065 – gitesttypes should be installed
1432 * tests/Makefile.am:
1433 * tests/types/Makefile.am -> tests/everything/Makefile.am
1434 * tests/types/gitesttypes.c -> tests/everything/gitesttypes.c
1435 * tests/types/gitesttypes.h -> tests/everything/gitesttypes.h
1436 move tests/types to tests/everything
1438 * tests/everything/Makefile.am: build normal shared library
1439 libgirepository-everything.so.1.0.0 and corresponding typelib
1440 Everything-1.0.typelib
1442 * tests/everything/Makefile.am: explicitly link libtool
1443 versioning with typelib versioning with variables
1445 2008-10-28 Johan Bilien <jobi@via.ecp.fr>
1447 * tools/g-ir-scanner: add LD_LIBRARY_PATH to LPATH before calling ld.
1449 2008-10-27 Johan Bilien <jobi@via.ecp.fr>
1451 * gio/gio-2.0.c: add allow-none annotations, based on the pygobject
1454 2008-10-27 Johan Bilien <jobi@via.ecp.fr>
1456 Bug 558068 – when invoking a method, offset the in arguments by one,
1459 * tests/invoke/invoke.c, tests/invoke/testfns.c,
1460 tests/invoke/testfns-1.0.gir: Add testing of method and constructor.
1461 * girepository/ginvoke.c: do not offset the index of given out
1462 arguments by one for methods, "this" is provided as in argument only.
1464 2008-10-27 Johan Bilien <jobi@via.ecp.fr>
1466 * gir/gio-2.0.c: add annotation for g_file_delete
1468 2008-10-27 Tommi Komulainen <tommi.komulainen@iki.fi>
1470 Bug 558062 – provide and use paths in the .pc file
1472 * gobject-introspection-1.0.pc.in: provide typelibdir variable
1473 for where .typelibs should be installed (callers shouldn't need
1474 to construct paths from bits and pieces)
1476 2008-10-25 Andreas Rottmann <a.rottmann@gmx.at>
1478 Bug 557791 – g_irepository_require() could return a GTypelib *
1480 * girepository/girepository.c: Return GTypelib; this is useful
1481 for low level manipulation.
1483 2008-10-25 Colin Walters <walters@verbum.org>
1485 Bug 557788 – Return types for constructors in generated typelib bogus
1487 * giscanner/glibtransformer.py: Don't resolve ctors incrementally,
1488 rely on end pass resolution.
1490 2008-10-25 Andreas Rottmann <a.rottmann@gmx.at>
1492 Bug 557786 - support fixed size arrays
1494 * girepository/ginfo.c: Add g_type_info_get_array_fixed_size.
1495 * giscanner/scannerparser.y: Retain fixed array size.
1496 * giscanner/ast.py: Add to note.
1497 * giscanner/girwriter.py: Write to gir.
1498 * girepository/girnode.c: Write it to typelib.
1499 * tools/generate.c: Generate.
1500 * tests/*: Add tests.
1502 2008-10-25 Colin Walters <walters@verbum.org>
1504 Bug 557076 - move typelibs to $libdir
1506 * configure.ac: Steal some configury bits from dbus to expand
1508 * gir/Makefile.am: Move to libdir.
1509 * girepository/girepository.c: Stop searching XDG_DATA_DIRS;
1510 instead just look at one hardcoded path in libdir.
1511 * acinclude.m4: Bits from dbus.
1513 2008-10-24 Johan Dahlin <johan@gnome.org>
1515 * girepository/girnode.c (g_ir_node_check_unhandled_members):
1516 Be quiet, do not warn about unhandled members.
1518 2008-10-24 Johan Dahlin <johan@gnome.org>
1520 * girepository/gtypelib.c:
1521 Only use SHLIB_SUFFIX on darwin, otherwise use
1522 G_MODULE_SUFFIX, we cannot get shext_cmds from libtool 2.2.
1524 2008-10-24 Lucas Rocha <lucasr@gnome.org>
1526 Bug 557623 - Constructors shouldn't be flagged as methods.
1528 * girepository/ginfo.c (g_function_info_get_flags): ditto.
1530 2008-10-24 Johan Dahlin <johan@gnome.org>
1532 * giscanner/scannerparser.y:
1533 Check against division by zero for the modula operator.
1534 This fixes header parsing of OSX system headers included
1537 2008-10-24 Johan Dahlin <johan@gnome.org>
1541 Add a CONTRIBUTORS file and dist it.
1543 2008-10-23 Tommi Komulainen <tommi.komulainen@iki.fi>
1545 Bug 556739 – transfer-ownership attribute should be mandatory in .gir
1547 * girepository/girparser.c (parse_param_transfer):
1548 * giscanner/transformer.py (_create_parameter, _create_return):
1549 * giscanner/girwriter.py (_write_return, _write_parameter):
1550 * tools/generate.c (write_callable_info): always write and
1551 require "transfer-ownership" for return-values and parameters
1554 * tests/invoke/testfns-1.0.gir:
1556 * tests/scanner/DrawableAdditions.xml:
1557 * tests/scanner/GtkFrob-1.0-expected.tgir:
1558 * tests/scanner/annotation-1.0-expected.tgir:
1559 * tests/scanner/drawable-1.0-expected.tgir:
1560 * tests/scanner/drawable-injected-1.0-expected.gir:
1561 * tests/scanner/drawable-injected-1.0-expected.tgir:
1562 * tests/scanner/foo-1.0-expected.tgir: Updated
1564 2008-10-23 Tommi Komulainen <tommi.komulainen@iki.fi>
1566 * giscanner/cgobject.py: build fundamental types same way as glib
1568 * giscanner/glibtransformer.py (_type_from_gtype): record GType
1569 when constructing the Type from it
1571 * giscanner/glibtransformer.py (_adjust_transfer): Check whether
1572 the parameter is a GObject from its GType, if available.
1574 * giscanner/glibtransformer.py (_adjust_transfer):
1575 * tests/scanner/foo-1.0-expected.gir:
1576 * tests/scanner/foo-1.0-expected.tgir: deduce
1577 transfer-ownership from GTypes
1579 2008-10-23 Tommi Komulainen <tommi.komulainen@iki.fi>
1581 * giscanner/transformer.py (_create_parameter):
1582 * tests/scanner/foo-1.0-expected.gir: make varargs
1583 transfer-ownership="none"
1585 2008-10-23 Colin Walters <walters@verbum.org>
1587 Bug 556739 - transfer ownership
1589 * giscanner/ast.py: Refactor Parameter/Return to share
1590 common attributes. Add transfer_inferred attribute
1591 which says whether or not we made a guess.
1592 * giscanner/transformer.py: Add much more extensive
1593 heuristics around parameter and return transfer.
1594 * giscanner/glibtransformer.py: Adjust to inspect
1598 2008-10-22 Tommi Komulainen <tommi.komulainen@iki.fi>
1600 Bug 557377 – Add test to ensure annotations survive the roundtrip via typelib
1602 * tests/scanner/Makefile.am:
1603 * tests/scanner/annotation-1.0-expected.tgir:
1604 * tests/scanner/drawable-1.0-expected.tgir:
1605 * tests/scanner/drawable-injected-1.0-expected.tgir:
1606 * tests/scanner/foo-1.0-expected.tgir:
1607 * tests/scanner/GtkFrob-1.0-expected.tgir:
1608 * tests/scanner/utility-1.0-expected.tgir: Add test to ensure
1609 annotations survive the roundtrip via typelib
1611 The expectations are as currently produced by g-ir-generate,
1612 comparison with the .gir files shows there are differences.
1614 2008-10-23 Johan Bilien <jobi@via.ecp.fr>
1616 Bug 557468 – Support for GI_TYPELIB_PATH
1618 * girepository/girepository.c: if the GI_TYPELIB_PATH is set, add the
1619 provided paths to the global search path.
1621 2008-10-22 Tommi Komulainen <tommi.komulainen@iki.fi>
1623 Bug 557379 – g-ir-generate not writing the 'abstract' attribute
1625 * tests/scanner/drawable-1.0-expected.tgir:
1626 * tests/scanner/drawable-injected-1.0-expected.tgir:
1627 * tests/scanner/foo-1.0-expected.tgir:
1628 * tools/generate.c (write_object_info): write 'abstract'
1629 attribute for classes
1631 2008-10-22 Lucas Rocha <lucasr@gnome.org>
1633 * girepository/girmodule.c, girepository/gtypelib.c,
1634 girepository/girparser.[ch]: fix some build warnings.
1636 2008-10-22 Tommi Komulainen <tommi.komulainen@iki.fi>
1638 Bug 557405 – Use 'allow-none' consistently
1640 * docs/typelib-format.txt:
1641 * girepository/ginfo.c (g_arg_info_may_be_null):
1642 * girepository/girnode.c (g_ir_node_build_typelib):
1643 * girepository/girnode.h (struct _GIrNodeParam):
1644 * girepository/girparser.c (start_parameter):
1645 * girepository/girwriter.c (function_generate):
1646 * girepository/gtypelib.h (ArgBlob):
1648 * tests/function.gir:
1649 * tools/generate.c (write_callable_info): Use 'allow-none'
1650 consistently throughout
1652 2008-10-22 Tommi Komulainen <tommi.komulainen@iki.fi>
1654 Bug 557092 – Callback annotations not used
1656 * giscanner/transformer.py (_create_callback): use annotations
1658 * tests/scanner/annotation.h
1659 * tests/scanner/annotation-1.0-expected.gir: add tests
1661 2008-10-21 Colin Walters <walters@verbum.org>
1663 * giscanner/scannerlexer.l: Don't require trailing whitespace after
1664 uncommented parameters.
1667 2008-10-21 Colin Walters <walters@verbum.org>
1669 * girepository/girepository.c: Ensure that when doing an unversioned
1670 require, we prefer items earlier in the search path to later ones.
1672 2008-10-21 Owen Taylor <otaylor@redhat.com>
1674 * giscanner/transformer.py: For string parameters allow transfer annotation
1675 to override the standard automatic guessing based on 'const'.
1677 2008-10-21 Johan Bilien <jobi@via.ecp.fr>
1679 Bug 557241 – "throws" flag for functions
1681 * tests/scanner/drawable-1.0-expected.gir,
1682 tests/scanner/drawable-injected-1.0-expected.gir,
1683 tests/scanner/drawable.[ch]: add simple test for throwing
1684 function (has GError ** as last argument)
1686 * giscanner/ast.py: add a 'throws' flag to Function
1687 * giscanner/glibtransformer.py: if a function's last paramerter is
1688 a GError, set the 'throws' flag and remove that parameter
1689 * giscanner/girwriter.py: write out the 'throws' attribute
1690 * giscanner/girparser.py: support parsing the 'throws' attribute
1692 * tests/repository/gitestthrows.c: add a simple test to check the
1693 throws flag in a typelib and invoke the function
1695 * girepository/ginfo.c, girepository/girnode.[ch],
1696 girepository/girnode.h, girepository/girparser.c,
1697 girepository/girepository.h: Add and parse the GI_FUNCTION_THROWS flag
1699 * girepository/ginvoke.c: if a function throws, add a GError as last
1700 arguments, and propagate the error to the invoker.
1702 2008-10-21 Tommi Komulainen <tommi.komulainen@iki.fi>
1704 * giscanner/transformer.py (_create_parameters): Warn if we see
1705 annotations for unknown parameters. If .h and .c files name
1706 parameters differently, the annotations may be lost.
1708 2008-10-21 Johan Dahlin <johan@gnome.org>
1710 Bug 556358 - don't use libtool internals
1712 * giscanner/Makefile.am:
1713 * giscanner/libtoolimporter.py:
1714 * giscanner/sourcescanner.py:
1715 * giscanner/utils.py:
1716 Add a python meta importer and remove a libtool symlink hack.
1718 2008-10-20 Andreas Rottmann <a.rottmann@gmx.at>
1720 * tests/scanner/Makefile.am (%.typelib): Set PYTHONPATH
1721 and --add-include-path appropriately when invoking the scanner.
1722 * tests/types/Makefile.am (%typelib): Likewise.
1724 2008-10-20 Colin Walters <walters@verbum.org>
1726 Bug 556777 - validate properties
1728 * giscanner/transformer.py: Add option to throw on unknown types.
1729 * giscanner/glibtransformer.py: Use it on properties.
1730 * tests/*: Add a test.
1732 2008-10-20 Colin Walters <walters@verbum.org>
1734 * giscanner/glibast.py: Also register g variants of
1735 default_array_types. This is not beautiful, but
1736 good alternatives aren't easy to come by.
1737 This fixes gchar ** parsing.
1739 2008-10-20 Colin Walters <walters@verbum.org>
1741 * docs/typelib-format.txt, girepository/gtypelib.h:
1742 Take a bit from ObjectInfo to represent abstract flag.
1743 * giscanner/cgobject.py: Expose g_type_get_flags.
1744 * girepository/girepository.h: Add accessor.
1745 * girepository/ginfo.c: Implement it.
1746 * giscanner/ast.py: Add is_abstract flag to generic
1748 * giscanner/glibast.py: Use it.
1749 * giscanner/girwriter.py: Write it.
1750 * girepository/girparser.c: Parse it.
1753 2008-10-20 Tommi Komulainen <tommi.komulainen@iki.fi>
1755 * giscanner/girparser.py (_parse_function): don't lose
1756 'transfer-ownership' attributes when injecting, check for the
1759 2008-10-19 Johan Dahlin <johan@gnome.org>
1761 * giscanner/scannerlexer.l: Parse and ignore __asm.
1763 2008-10-19 Colin Walters <walters@verbum.org>
1765 * giscanner/girparser.py: Parse array length= to ensure
1766 it doesn't get lost from --inject.
1768 2008-10-17 Colin Walters <walters@verbum.org>
1770 Bug 556795 - char ** regression
1772 * giscanner/transformer.py: Fix parsing of ctypes, add some
1773 comments about what's going on.
1774 * tests/*: Add a test for char **.
1776 2008-10-17 Colin Walters <walters@verbum.org>
1778 Bug 556783 - change namespace handling to be more consistent
1780 * giscanner/transformer.py: Eliminate usage of
1781 strip_namespace_object. We now treat --namespace as the default
1782 --strip-prefix; however, if --strip-prefix is specified it
1783 overrides --namespace. This applies to everything except function
1784 names, where we do also strip the namespace.
1785 * giscanner/glibtransformer.py: Remove usage of
1786 strip_namespace_object.
1788 * tests/*: Add skeletal GtkFrob-1.0 test which has different
1789 --namespace and --strip-prefix.
1791 2008-10-17 Tommi Komulainen <tommi.komulainen@iki.fi>
1793 Bug 556732 – generate gir files consistently
1795 * girepository/girparser.c (start_parameter):
1797 * tests/invoke/testfns-1.0.gir:
1798 * tools/generate.c (write_callable_info): write
1799 'transfer-ownership' attribute consistently with both
1800 return-value and parameter elements
1802 2008-10-17 Tommi Komulainen <tommi.komulainen@iki.fi>
1804 Bug 556732 – generate gir files consistently
1806 * tools/generate.c (write_callable_info): write 'direction'
1807 attribute only if other than 'in' to be consistent with
1810 * tests/object.gir: remove direction="in" which is the default
1812 2008-10-17 Tommi Komulainen <tommi.komulainen@iki.fi>
1814 Bug 556732 – generate gir files consistently
1816 * giscanner/ast.py (Field): add readable and writable properties
1817 * giscanner/girparser.py (_parse_field): copy 'readable' and
1818 'writable' attributes
1819 * giscanner/transformer.py (_create_member): create fields as
1821 * giscanner/glibtransformer.py (_introspect_object,
1822 _pair_class_struct): make object instance and class fields
1824 * giscanner/girwriter.py (_write_field):
1825 * tools/generate.c (write_field_info): write field 'readable'
1826 and 'writable' attributes only if non-default (read-only)
1827 * girepository/girparser.c (start_field): in the absence of
1828 attributes assume fields are read-only
1830 * tests/struct.gir: remove redundant readable="1" from fields
1831 * tests/scanner/foo-1.0-expected.gir:
1832 * tests/scanner/utility-1.0-expected.gir: add writable="1" to
1833 all record and union fields
1835 2008-10-17 Tommi Komulainen <tommi.komulainen@iki.fi>
1837 Bug 556732 – generate gir files consistently
1839 * giscanner/girwriter.py (_write_property): write properties
1840 'construct' attribute if set
1841 * tools/generate.c (write_property_info): write properties
1842 'readable' and 'writable' attributes only if non-default
1843 * tests/object.gir: add writable="0"
1844 * tests/scanner/foo-1.0-expected.gir: add construct="1"
1846 2008-10-17 Johan Bilien <jobi@via.ecp.fr>
1848 * gir/glib-2.0.c: added annotations
1850 2008-10-16 Johan Bilien <jobi@via.ecp.fr>
1852 * giscanner/ast.py: Also assume direction=out for size_t*, ssize_t*
1855 2008-10-16 Johan Bilien <jobi@via.ecp.fr>
1857 Bug 556610 – giscanner/girparser.py drops parameter options
1859 * tests/scanner/drawable-injected-1.0-expected.gir,
1860 tests/scanner/DrawableAdditions.xml: added simple test for injection.
1861 * giscanner/ast.py: allow Parameter to take options in the constructor
1862 * giscanner/girparser.py: parse parameter options (transfer,
1863 direction, allow-none)
1865 2008-10-16 Colin Walters <walters@verbum.org>
1867 Bug 556185 - segfault on g_callable_info_get_return_type
1869 Initial patch from John Ehresman.
1871 * tests/repository/*: Add a test using
1872 g_callable_info_get_return_type. Instead of casting a
1873 GITypeInfo directly to a GIRegisteredTypeInfo, we need
1874 to call g_type_info_get_interface.
1876 2008-10-16 Colin Walters <walters@verbum.org>
1878 Bug 556579 - union and struct name misresolved
1880 * giscanner/transformer.py: The calls to _resolve_type_name
1881 for struct/union names was a legacy holdover from when type
1882 resolution had multiple phases. Now it's actively harmful
1883 since we might pull in an identical name from another
1887 2008-10-16 Colin Walters <walters@verbum.org>
1889 Bug 556432 - transfer annotations and defaults
1891 * giscanner/transformer.py: Canonicalize type
1892 after removing *, not before. This ensures that
1893 guchar* is transformed to 'uint8'.
1894 Add some comments here.
1895 * giscanner/glibtransformer.py: Add _adjust_transfer
1896 phase for tweaking GObject transfers.
1899 2008-10-16 Tommi Komulainen <tommi.komulainen@iki.fi>
1901 * configure.ac: enable bunch of gcc warning CFLAGS
1903 2008-10-16 Tommi Komulainen <tommi.komulainen@iki.fi>
1905 Bug 556543 – reduce compiler warnings
1907 * girepository/ginfo.c:
1908 * girepository/girepository.c (register_internal,
1909 count_interfaces, find_interface, find_namespace_version,
1910 parse_version, g_irepository_require):
1911 * girepository/girmodule.c (g_ir_module_build_typelib):
1912 * girepository/girnode.c (init_stats, dump_stats,
1913 _g_irnode_init_stats, _g_irnode_dump_stats,
1914 g_ir_node_can_have_member):
1915 * girepository/girparser.c (firstpass_end_element_handler,
1916 locate_gir, parse_basic, parse_type_internal, resolve_aliases,
1917 start_alias, start_type, end_type_top, parse_include, cleanup,
1919 * girepository/gtypelib.c (validate_function_blob, validate_enum_blob):
1920 * giscanner/giscannermodule.c (directive_get_options,
1921 type_get_child_list):
1922 * giscanner/scannerlexer.l (parse_gtkdoc):
1923 * giscanner/scannerparser.y (ctype_free):
1924 * giscanner/sourcescanner.c:
1925 * giscanner/sourcescanner.h (gi_source_scanner_parse_macros):
1926 * tests/types/gitesttypes.c:
1927 * tools/compiler.c (main):
1928 * tools/generate.c (write_repository): Remove unused variables
1929 and code, add missing includes, declarations and case
1932 2008-10-16 Tommi Komulainen <tommi.komulainen@iki.fi>
1934 Bug 556541 – access union members through UnionBlob rather than
1937 * girepository/ginfo.c (g_union_info_find_method): access union
1938 members through UnionBlob rather than StructBlob
1940 2008-10-15 Colin Walters <walters@verbum.org>
1942 Bug 556331 - clean up includes handling
1944 * tools/g-ir-scanner: Rework command line arguments; now we take
1945 --add-include-path and --include separately.
1946 * giscanner/girwriter.py: Separate name= and version= in include
1948 * giscanner/ast.py: Add Include type.
1949 * giscanner/transformer.py: Cleanups to register_include now that
1950 we don't need to handle mixed filenames and relative arguments.
1951 * girepository/girparser.c: Parse name and version separately;
1952 this fixes a bug as a side effect where we weren't resolving
1953 through aliases for basic types.
1954 * girepository/girepository.c: Fix format string args.
1955 * gir/Makefile.am: Update.
1958 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
1960 Bug 556434 – unhandled interface/object/... member types
1962 * girepository/girnode.c (g_ir_node_check_unhandled_members,
1963 g_ir_node_build_typelib): Check all
1964 interface/object/boxed/struct/union members are processed and
1965 abort if they are not. (Mostly callbacks in structs, but also
1966 fields in interfaces.)
1968 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
1970 * a/girepository/girnode.c (g_ir_node_build_members,
1971 g_ir_node_build_typelib): refactor common code for processing
1972 members to a function
1974 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
1976 * gir/Makefile.am (check-local): check that typelib -> gir -> typelib
1977 transformation is lossless (it's not)
1979 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
1981 * tests/Makefile.am: fix tests to compare xml to xml instead of
1982 typelib to xml, and stop on error
1984 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
1986 * tools/generate.c (write_type_name, write_type_info,
1987 write_type_info, write_object_info, write_object_info,
1988 write_interface_info, write_error_domain_info): reduce code
1991 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
1993 Bug 556174 – parse types for lists etc.
1995 * girepository/girparser.c (end_type_recurse):
1997 * tools/generate.c (write_type_info, write_field_info,
1998 write_callable_info, write_callable_info, write_constant_info,
1999 write_property_info): use nested <type>s for lists and hashes
2001 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
2004 * tests/object.gir: remove trailing whitespace from inside
2005 elements to match g-ir-generate output
2007 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
2009 * tools/generate.c (xml_printf): quote printf arguments so that
2010 we don't generate invalid XML by writing unescaped double quotes
2011 and such in attributes
2013 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
2015 * tools/generate.c (write_field_info, write_callable_info,
2016 write_function_info, write_callback_info, write_struct_info,
2017 write_constant_value, write_signal_info, write_vfunc_info,
2018 write_object_info, write_interface_info, write_union_info,
2019 write_repository): remove unused indent parameters, xmlwriter
2020 keeps track of necessary indentation
2022 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
2024 * tools/generate.c (xml_element_new, xml_element_free,
2025 xml_start_element, xml_end_element, xml_end_element_unchecked,
2026 xml_open, xml_close): Keep track of generated XML tree and
2027 handle indentation and closing tags properly.
2028 (write_field_info, write_callable_info, write_function_info,
2029 write_callback_info, write_struct_info, write_value_info,
2030 write_constant_info, write_enum_info, write_signal_info,
2031 write_vfunc_info, write_property_info, write_object_info,
2032 write_interface_info, write_error_domain_info, write_union_info,
2033 write_repository): Use xml_start_element and xml_end_element to
2036 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
2038 * tools/generate.c (xml_printf, xml_open, xml_close, xml_free):
2039 (write_type_name, write_type_info, write_field_info,
2040 write_callable_info, write_function_info, write_callback_info,
2041 write_struct_info, write_value_info, write_constant_value,
2042 write_constant_info, write_enum_info, write_signal_info,
2043 write_vfunc_info, write_property_info, write_object_info,
2044 write_interface_info, write_error_domain_info, write_union_info,
2045 write_repository): wrap all FILE access to go through simple xmlwriter
2047 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
2049 Bug 556400 – Fails to build on OS X 10.4
2051 * configure.ac: check for functions backtrace and backtrace_symbols
2052 * girepository/girparser.c (backtrace_stderr): Comment out
2053 implementation if the functions are not available.
2054 * gcov.mak (clean-gcov, clean-gcno): always call 'find' with a
2055 directory for better portability
2057 2008-10-15 Johan Bilien <jobi@via.ecp.fr>
2059 Bug 556433 – assume direction = out for int * parameters
2061 * giscanner/ast.py: define a list of types for which, if passed as
2062 reference, we assume a default direction of 'out'
2063 * giscanner/transformer.py: if a type has type pointer to one of the
2064 previously defined types, and no direction is set, assume out.
2065 * tests/scanner/drawable.[ch]: added tests for guessed direction=out
2067 2008-10-15 Johan Bilien <jobi@via.ecp.fr>
2069 * tests/scanner/annotation.c: fixed a few copy-paste errors
2071 2008-10-14 Johan Bilien <jobi@via.ecp.fr>
2073 Bug 556323 – transfer-ownership is wrong for functions returning const
2076 * giscanner/transformer.py: check for a const string as return value,
2077 not just const char*. Suggested by Colin Walters
2078 * tests/scanner/annotation-1.0-expected.gir: updated expected output
2080 2008-10-14 Johan Bilien <jobi@via.ecp.fr>
2082 * girepository/ginfo.c, girepository/girepository.h: add
2083 g_union_info_find_method
2085 2008-10-14 Colin Walters <walters@verbum.org>
2087 * tests/repository/Makefile.am: Reenable repo test.
2088 * tests/repository/gitestrepo.c: Prepend search
2089 path for $(top_builddir)/gir dir so that we don't
2090 require installation for "make check" to pass.
2092 2008-10-13 Jürg Billeter <j@bitron.ch>
2094 * giscanner/glibtransformer.py:
2095 * tests/scanner/annotation-1.0-expected.gir:
2096 * tests/scanner/drawable-1.0-expected.gir:
2097 * tests/scanner/foo-1.0-expected.gir:
2098 * tests/scanner/utility-1.0-expected.gir:
2100 Support fields in GObject structs
2102 2008-10-13 Jürg Billeter <j@bitron.ch>
2104 * giscanner/ast.py: add signed integer and off_t to type_names
2106 2008-10-12 Jürg Billeter <j@bitron.ch>
2108 * giscanner/girparser.py: Parse bits attribute of fields
2110 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
2112 * tests/repository/Makefile.am: run 'gitestrepo' in 'make check'
2113 * tests/repository/gitestrepo.c (main): instantiate
2114 'GCancellable' to ensure the GType is registered before using
2117 2008-10-12 Johan Bilien <jobi@via.ecp.fr>
2119 * giscanner/girparser.py: actually add the parsed constant nodes
2121 2008-10-12 Colin Walters <walters@verbum.org>
2123 * girepository/girepository.c: Don't cast DirEntry to Blob,
2124 actually look it up by offset.
2126 2008-10-12 Johan Bilien <jobi@via.ecp.fr>
2128 * giscanner/girparser.py: parse constant nodes in gir files
2130 2008-10-12 Johan Bilien <jobi@via.ecp.fr>
2132 * giscanner/transformer.py: prefix for constants have an underscore,
2133 so remove them as if they were functions, not objects.
2135 2008-10-12 Johan Bilien <jobi@via.ecp.fr>
2137 * tests/scanner/foo-1.0-expected.gir: add constants to expected gir
2140 2008-10-12 Colin Walters <walters@verbum.org>
2142 Initial patch from Jani Monoses.
2144 * girepository/gtypelib.c: Fix inverted test for success
2147 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
2149 * tools/generate.c (write_callable_info): use "transfer-ownership"
2150 attribute for return values
2152 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
2154 * tools/generate.c (write_callable_info): move "transfer" and
2155 "null-ok" attributes from <function> to <return-value> element
2157 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
2159 * girepository/girparser.c (start_return_value): handle
2160 "transfer-ownership" attribute
2162 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
2164 * girepository/girparser.c (parse_param_transfer):
2165 * tools/generate.c (write_callable_info): use "container" for
2166 container/shallow ownership transfer (not "shallow")
2168 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
2170 * girepository/girparser.c (parse_param_transfer,
2171 start_parameter): Refactor handling of transfer=none/shallow/full
2172 to separate function
2174 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
2176 Bug 556048 – Crash in g_irepository_find_by_gtype
2178 * girepository/gtypelib.h (BLOB_IS_REGISTERED_TYPE): added
2179 * girepository/girepository.c (find_interface): Fix
2180 find_by_gtype case to get the type name from right offset
2182 2008-10-12 Jürg Billeter <j@bitron.ch>
2184 * giscanner/girparser.py: Fix parsing transfer-ownership attribute
2187 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
2189 * girepository/gtypelib.h (RegisteredTypeBlob): make
2190 'unregistered' one bit wide as everywhere else
2192 2008-10-12 Jürg Billeter <j@bitron.ch>
2194 * giscanner/glibtransformer.py:
2195 * tests/scanner/annotation-1.0-expected.gir:
2196 * tests/scanner/drawable-1.0-expected.gir:
2197 * tests/scanner/drawable.h:
2198 * tests/scanner/foo-1.0-expected.gir:
2199 * tests/scanner/utility-1.0-expected.gir:
2201 Readd class records as workaround to not break Gtk typelib
2203 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
2205 * tests/types/Makefile.am: fix typo in gitesttypes namespace
2207 2008-10-12 Jürg Billeter <j@bitron.ch>
2209 * giscanner/glibtransformer.py: Don't generate <record> elements
2211 * tests/scanner/*: Update test cases
2213 2008-10-11 Colin Walters <walters@verbum.org>
2215 Bug 552858: versioning
2217 This is a big patch. You should probably remove your installation
2220 * docs/typelib-format.txt: Add nsversion entry which holds
2221 version of namespace.
2222 * girepository/girepository.h: Add 'version' parameter to
2223 g_irepository_require. This may be NULL. Normally
2224 bindings should pass an explicit version though.
2225 * girepository/girepository.c: Lots of infrastructure to
2226 support versioning. Add some more documentation. Disallow
2227 some usage of NULL namespaces.
2228 * girepository/girmodule.c: Add version parameter.
2229 * girepository/gtypelib.c: Update header size.
2230 * giscanner/ast.py: Add version to Namespace.
2231 * giscanner/girparser.py: Parse version attribute from
2232 XML, pass to Namespace.
2233 * giscanner/girwriter.py: Write out version parameter.
2234 * giscanner/transformer.py: Clean up include registration.
2235 * tests/*: Add version attribute.
2236 * tests/invoke/invoke.c: Don't try looking up test before
2237 it's loaded in repository.
2238 * tools/generate.c: Output version parameter.
2239 * gir/Makefile.am: Add 2.0 version to .gir files.
2241 2008-10-11 Colin Walters <walters@verbum.org>
2243 * giscanner/scannerlexer.l (parse_gtkdoc): Don't lose
2244 if we have mismatched parens.
2246 2008-10-11 Lucas Rocha <lucasr@gnome.org>
2248 * giscanner/girparser.py (_parse_enumeration_bitfield): fix typo
2249 on 'members' variable.
2251 2008-10-11 Colin Walters <walters@verbum.org>
2253 Bug 555947 - update annotations syntax
2255 * giscanner/ast.py: Default to None for transfer. Remove
2256 default transfers for container types; we require this to
2258 * giscanner/girwriter.py: Transfer is now 'none', 'container',
2259 'full' to match repository.
2260 * giscanner/scannerlexer.l: Annotations now are parenthesized.
2261 * giscanner/transformer.py: Update for new annotations syntax.
2264 2008-10-11 Johan Bilien <jobi@litl.com>
2266 * giscanner/scannerparser.y: ignore non-UTF-8 string constants
2268 2008-10-11 Johan Bilien <jobi@litl.com>
2270 Bug 552347: Parse #defines constants
2272 * girepository/gtypelib.c: update the list of value_size
2273 with recently defined type tags
2274 * giscanner/scannerparser.y: brought back parsing of #defined, as
2275 present in older version
2276 * giscanner/giscannermodule.c: bind gi_source_scanner_append_filename
2277 * giscanner/girwriter.py: write out constant tags in the gir
2278 * giscanner/sourcescanner.py: add accessor for const_string
2279 * giscanner/transformer.py, giscanner/glibtransformer.py: handle
2282 2008-10-11 Tommi Komulainen <tommi.komulainen@iki.fi>
2284 Bug 555946: Install a test module exercising all types, transfer
2289 * tests/types/*: Add and install a test module that has functions
2290 accepting and returning most of the basic types to enable bindings
2291 implementors to more easily test their type conversion routines.
2293 2008-10-11 Jürg Billeter <j@bitron.ch>
2295 Bug 552374: Const strings should be identified in the gir.
2297 * giscanner/transformer.py: support string memory management
2298 * tests/scanner/foo.h: use char * and const char *
2299 * tests/scanner/foo-expected.gir: test that
2301 2008-10-11 Johan Dahlin <johan@gnome.org>
2303 * giscanner/girparser.py:
2304 Also parse enums which are not glib types.
2306 2008-10-11 Lucas Rocha <lucasr@gnome.org>
2308 Bug 552370: add one more test for unsigned as a type, not as
2311 * giscanner/ast.py: add 'uint' type name for 'unsigned'.
2312 * test/scanner/foo.h: add function which uses unsigned as a type.
2313 * test/scanner/foo-expected.gir: test that.
2315 2008-10-11 Andreas Rottmann <a.rottmann@gmx.at>
2317 Bug 555712: Struct and union issues
2319 * giscanner/scannerparser.y (struct_declarator): Use information
2320 provided about the bit width of a field.
2321 * giscanner/transformer.py (Transformer._create_member): Pass the
2322 symbol's const_int member to the created field (it represents the
2324 * giscanner/girwriter.py (GIRWriter._write_field): Output 'bits'
2325 field attribute, if present.
2326 * giscanner/ast.py (Field): Add 'bits' member, specifying the
2327 width in bits of the field (only relevant for bitfields).
2330 * giscanner/transformer.py (Transformer._create_typedef_struct)
2331 (Transformer._create_typedef_union): Add calls to _create_struct()
2332 and _create_union(), respectively. This causes the scanner to
2333 generate output for fields of struct and union typedefs.
2336 2008-10-11 Jürg Billeter <j@bitron.ch>
2338 Bug 552370: unsigned not scanned properly
2340 * giscanner/scannerparser.y: combine basic types such as unsigned
2341 int and long long when scanning
2342 * tests/scanner/foo-expected.gir:
2343 * tests/scanner/foo.c: (foo_test_unsigned):
2344 * tests/scanner/foo.h: test that
2346 2008-10-11 Lucas Rocha <lucasr@gnome.org>
2348 Bug 554854: The --typelib-xml and --inject options should reuse
2349 giscanner parser/writer.
2351 * giscanner/ast.py: add constructor list to Struct and Union.
2352 Add new param in Return's contructor to define transfer.
2353 * giscanner/girparser.py: several additions to the parser in order
2354 to have parsing all nodes of the gir xml files.
2355 * tools/g-ir-scanner (typelib_xml_strip, inject): use gir parser
2356 and writer in --inject and --typelib-xml options.
2357 * giscanner/xmlwriter.py: ignore empty attributes instead of
2358 raising an error as this basically exposes a bug in GIRParser.
2359 This should be reverted as soon as the parser is fixed.
2361 2008-10-11 Lucas Rocha <lucasr@gnome.org>
2363 Bug 552376: scanner generates wrong names for enum members when
2364 there's no defined gtype.
2366 * giscanner/utils.py (strip_common_prefix): Always strip common
2367 prefix exactly up to the last "_", and not beyond.
2368 * tests/scanner/foo.h (FooEnumNoType): add FOO_ENUM_NEUF. The point
2369 here is that the first character after the last '_' should should be
2370 the same as the character in the same position on the type name.
2371 * tests/scanner/foo-expected.gir: test that
2373 2008-10-10 Lucas Rocha <lucasr@gnome.org>
2375 Bug 555293: append library_paths to LPATH env variable to work
2376 around a bug in find_library when using ldconfig.
2378 * tools/g-ir-scanner (main): ditto.
2380 2008-10-09 Lucas Rocha <lucasr@gnome.org>
2382 * girepository/girepository.c (register_internal): fix regression on
2383 invoke test case by making sure we load the global module in the
2384 typelib when dealing with inline typelibs.
2385 * girepository/gtypelib.c: a couple of coding style fixes.
2387 2008-10-06 Lucas Rocha <lucasr@gnome.org>
2389 Bug 555294: Add support for multiple shared libraries per typelib.
2391 * girepository/ginvoke.c (g_function_info_invoke),
2392 girepository/ginfo.c(g_registered_type_info_get_g_type): use
2393 g_typelib_symbol instead of g_module_symbol.
2394 * girepository/girepository.h: remove g_typelib_set_module and add
2396 * girepository/gtypelib.[ch] (find_some_symbol, _g_typelib_init,
2397 g_typelib_new_from_memory, g_typelib_new_from_const_memory,
2398 g_typelib_free, g_typelib_symbol): chnage GTypeLib to hold a list of
2399 modules instead of just one. The symbol lookup is now abstracted
2400 behind g_typelib_symbol which tries to find the passed symbol name in
2402 * giscanner/girwriter.py, tools/g-ir-scanner: change scanner to read
2403 and write shared_library attribute as a comma-separated list of libs.
2405 2008-10-06 Colin Walters <walters@verbum.org>
2407 * giscanner/transformer.py: Parse length= annotation as
2408 a parameter name, not a raw int.
2411 2008-10-03 Colin Walters <walters@verbum.org>
2413 Bug 551744: Non-GObject types aren't aggregating ctors and methods
2415 * girepository/gtypelib.c: Allow ctors/methods on struct,union,
2417 * giscanner/glibtransformer.py: Ditto, and GLibBoxed is also a
2421 2008-10-03 Colin Walters <walters@verbum.org>
2423 Bug 554576: scan problem with ev_selection_render_selection()
2425 * giscanner/transformer.py: Only do type resolution once we've
2426 scanned all types. What could happen before is that we'd strip
2427 the namespace from local type "EvSelection" => Selection, and
2428 then later pull a "Selection" from some other namespace because
2429 we hadn't yet seen the local EvSelection. This could come
2430 down to hash table ordering and other things so not easy
2431 to write a test for.
2433 2008-10-03 Lucas Rocha <lucasr@gnome.org>
2435 * giscanner/girwriter.py (_parser_member): fix the last parameter of
2436 GLibEnumMember constructor as it should be the enum member nick.
2438 2008-10-02 Colin Walters <walters@verbum.org>
2440 Bug 552961: remove this parameter for methods
2442 * giscanner/glibtransformer.py: Delete this parameter; it is
2444 * girepository/ginvoke.c: Insert this parameter for methods.
2445 * girepository/gtypelib.c: Remove no longer needed verification of
2446 method this parameter.
2449 2008-09-30 Dan Winship <danw@gnome.org>
2451 Bug 554490: g-ir-scanner gets confused by '\\'
2453 * giscanner/scannerlexer.l (chartext, stringtext): fix use of
2454 backslashes so it will correctly parse '\\' and "\\"
2456 * tests/scanner/annotation.c: add a use of '\\' to make sure that
2459 * giscanner/glibtransformer.py (GLibTransformer.count_type): typo
2461 2008-10-02 Colin Walters <walters@verbum.org>
2463 bug 552393: Note variadic functions
2465 * giscanner/scannerparser.y: Parse ellipsis. Refactor grammar
2466 to use parameter_list directly.
2467 * giscanner/sourcescanner.h: Add ellipsis csymbol type.
2468 * giscanner/ast.py: Add Varargs type.
2469 * giscanner/transformer.py: Check for ellipsis symbol, transform
2471 * girepository/girnode.h: Add varargs flag to in-memory nodes.
2472 Parse varargs functions, but filter them out before we start
2473 compiling the typelib.
2475 2008-10-02 Colin Walters <walters@verbum.org>
2477 Bug 554632: type tag for GType
2479 * girepository/girepository.h, girepository/girepository.c:
2480 Add type tag for GType - it's a special type we don't want
2481 to resolve to just "long".
2482 * docs/typelib-format.txt: Update.
2483 * girepository/girparser.c: Parse it.
2484 * giscanner/glibtransformer.py: Ensure we don't put GType in
2486 * tools/generate.c: Remove hardcoded type list.
2489 2008-09-30 Dan Winship <danw@gnome.org>
2491 Bug 554521: scanner generates wrong names for enum members with
2492 full type name prefix
2494 * giscanner/utils.py (strip_common_prefix): Fix this to strip the
2495 right amount when the entire "first" string is a prefix of
2498 * tests/scanner/foo.h (FooEnumFullname):
2499 * tests/scanner/foo-expected.gir: test that
2501 2008-09-29 Colin Walters <walters@verbum.org>
2503 Bug 552380: Array parameters should be marked in the gir
2505 * giscanner/ast.py: Default char** to utf8[], and guchar* to
2506 uint8[]. Add Array, List, and Map subclasses of Type;
2507 these types can be generic. Return transfer defaults
2508 to true if return value is string or container type.
2509 Delete Sequence type.
2510 * giscanner/scannerlexer.l: Syntax change for annotations;
2511 use <> since it's more readable.
2512 * giscanner/girwriter.py: Write out these changes.
2513 * giscanner/girparser.py: Parse them.
2514 * giscanner/transformer.py: Have a defined set of
2515 both list and map types. When creating a type,
2516 check if the ctype we've parsed is one of them,
2517 if so create a container type subclass as appropriate.
2518 * girepository/girparser.c: Parse in generic types.
2521 2008-09-27 Colin Walters <walters@verbum.org>
2523 * tools/g-ir-scanner: Add --inject option.
2525 2008-09-25 Colin Walters <walters@verbum.org>
2527 Remove non-repository types from GIR
2529 * giscanner/ast.py: The canonical name is 'utf8', not
2531 * giscanner/glibast.py: A few more glib type mappings.
2532 * girepository/girparser.c: We only parse repository types.
2533 * tests/*.gir: Update.
2535 2008-09-23 Colin Walters <walters@verbum.org>
2537 Bug 552566: Add time_t type
2539 We need a type for time_t since it's special in C, and just
2540 mapping it to long precluded bindings from handling it
2543 2008-09-19 Colin Walters <walters@verbum.org>
2545 Bug 552390: Handle capitialization like "DBus" more robustly
2547 The to_underscores function was designed for use against prefixed
2548 names; we need a separate function which will convert names like
2549 DBusFoo into dbus_foo, not d_bus_foo.
2551 2008-09-19 Colin Walters <walters@verbum.org>
2553 Add check to make sure we're not hitting out unresolved types
2555 Validate the "this" argument for methods
2557 Remove heuristic matching of methods to classes based on prefix
2559 It was a broken hack that dated from when we handled underscoring
2560 and capitalization conventions less well.
2562 2008-09-18 Colin Walters <walters@verbum.org>
2564 Bug 552384: Use SHLIB_SUFFIX intead of G_MODULE_SUFFIX for Darwin
2566 On Darwin, the suffix for installed shared libraries (.dylib) is
2567 different from loadable modules (.so). We use a bit of magic shell
2568 script from Behdad Esfahbod to figure out the right suffix.
2570 2008-09-15 Johan Dahlin <johan@gnome.org>
2572 * giscanner/sourcescanner.py (SourceType.type_qualifier): Add
2573 a wrapper for type_qualifier as well.
2575 2008-09-15 Colin Walters <walters@verbum.org>
2577 http://bugzilla.gnome.org/show_bug.cgi?id=552065
2579 * giscanner/ast.py: Add deprecation attributes.
2580 * giscanner/girwriter.py: Write out deprecation data.
2581 * girepository/girparser.c: Relax parsing; deprecated
2582 attribute now includes freeform string.
2583 * giscanner/scannerlexer.l: Parse Deprecated.
2584 * giscanner/transformer.py: Look for deprecated attribute
2586 * tests/scanner/*: Add a Deprecated test.
2588 2008-09-14 Tor Lillqvist <tml@novell.com>
2590 * tests/scanner/Makefile.am (%.typelib): Use $(EXEEXT).
2592 2008-09-14 Colin Walters <walters@verbum.org>
2594 * giscanner/glibtransformer.py: Ignore functions with
2597 2008-09-12 Colin Walters <walters@verbum.org>
2599 * giscanner/glibtransformer.py: Accept Gtk.Type as GType.
2601 2008-09-12 Colin Walters <walters@verbum.org>
2603 * giscanner/ast.py: Bind pid_t to INT for vte.
2605 2008-09-12 Colin Walters <walters@verbum.org>
2607 * giscanner/girparser.py: Parse c:type for boxed records/unions.
2608 * giscanner/glibast.py: Avoid overwriting ctype.
2609 * giscsanner/transformer.py: Try resolving types using the GType names.
2611 2008-09-12 Colin Walters <walters@verbum.org>
2613 * giscanner/minixpath.py: Code to run an "XPath"
2614 assertion against an XML tree, taken from
2615 gir-repository/gir/tests.py.
2616 * giscanner/Makefile.am: Ship it.
2617 * tools/g-ir-scanner: Add --xpath-assertions option.
2618 * gir/GLib-assertions.txt: Add a few assertions.
2619 * gir/Makefile.am: Run them.
2621 2008-09-11 Colin Walters <walters@verbum.org>
2623 http://bugzilla.gnome.org/show_bug.cgi?id=551737
2625 * giscanner/transformer.py: Fix strip_namespace_func to only strip
2626 prefix if it ends with _. Tweak callback stripping to determine
2627 based on presence of _ whether we need to use strip_namespace_func
2628 or strip_namespace_object.
2630 2008-09-09 Owen Taylor <otaylor@redhat.com>
2632 * docs/typelib-format.txt: Wether => Whether
2634 2008-09-08 Colin Walters <walters@verbum.org>
2636 * girepository/girparser.c: Default to "readable" for properties.
2637 * giscanner/ast.py: Add readable, writable etc.
2638 * giscanner/girwriter.py: Writ them.
2639 * giscanner/glibtransformer.py: Inspect them.
2642 2008-09-07 Colin Walters <walters@verbum.org>
2644 * giscanner/cgobject.py: Add comment.
2646 2008-09-07 Colin Walters <walters@verbum.org>
2648 * giscanner/cgobject.py: Also call g_thread_init.
2650 2008-09-07 Colin Walters <walters@verbum.org>
2652 * giscanner/transformer.py: Fix regression by not
2653 stripping prefix before stripping namespace for unions
2656 2008-09-06 Colin Walters <walters@verbum.org>
2658 * giscanner/transformer.py: If a namespace contains
2659 multiple caps, try stripping both gnomekeyring_ and
2662 2008-09-07 Johan Dahlin <johan@gnome.org>
2664 Bug 551162 – giscanner does not recognize asm and __asm__
2665 * giscanner/scannerlexer.l:
2666 Patch by Jani Monoses.
2668 2008-09-06 Colin Walters <walters@verbum.org>
2670 * girepository/girnode.c: Allow gtype_name
2671 and gtype_init in struct and union.
2672 * girepository/girparser.c: Parse glib:
2673 boxed bits for both structure and union.
2674 * girepository/gtypelib.c: Don't barf
2675 if structure is boxed.
2676 * giscanner/girparser.py: Parse new XML
2678 * giscanner/girwriter.py: Write out new
2680 * giscanner/glibast.py: Define new classes
2681 which are both Boxed and Struct/Union, as
2682 well as an "Other" for everything else.
2683 * giscanner/glibtransformer.py: Handle
2684 boxed types specially; we try to merge
2685 them with a struct/union if one exists,
2686 otherwise fall back to generic boxed.
2688 * tools/generate.c: Write out new format.
2690 2008-09-06 Johan Dahlin <johan@gnome.org>
2692 * giscanner/grealpath.h: Include stdlib.h
2694 * docs/g-ir-generate.1: Remove leading %
2696 2008-09-01 Colin Walters <walters@verbum.org>
2698 * girepository/girparser.c: Look at c:type to determine
2699 whether or not an item is a pointer.
2701 2008-09-01 Johan Dahlin <johan@gnome.org>
2703 * tests/scanner/Makefile.am:
2704 Set PYTHONPATH so the scanner can run
2705 even if you didn't install anything.
2707 2008-09-01 Johan Dahlin <johan@gnome.org>
2710 Post-release version bump
2713 2008-09-01 Johan Dahlin <johan@gnome.org>
2717 2008-08-31 Colin Walters <walters@verbum.org>
2719 * giscanner/glibtransformer.py: Quiet info
2722 2008-08-31 Johan Dahlin <johan@gnome.org>
2725 Bump version to 0.5.0
2727 2008-08-31 Colin Walters <walters@verbum.org>
2729 * giscanner/glibtransformer.py: Follow aliases to ensure
2730 we don't get a constructor returning a basic type.
2731 * giscanner/transformer.py: Add function to follow aliases.
2734 2008-08-31 Johan Dahlin <johan@gnome.org>
2736 * giscanner/scannerlexer.l:
2737 * giscanner/scannerparser.y:
2738 * giscanner/sourcescanner.h:
2739 * giscanner/sourcescanner.py:
2740 Parse GCC extensions in the parser instead of just undeffing them
2741 in the pre-processor.
2743 2008-08-31 Johan Dahlin <johan@gnome.org>
2745 * giscanner/glibtransformer.py:
2746 Clean up a huge if. Do not add methods or constructors
2748 * giscanner/utils.py:
2749 second might be longer than first, check that.
2751 2008-08-31 Johan Dahlin <johan@gnome.org>
2756 2008-08-31 Colin Walters <walters@verbum.org>
2758 * girepository/girparser.c: Don't lose if we
2761 2008-08-31 Colin Walters <walters@verbum.org>
2763 * giscanner/glibtransformer.py: Look for libtool
2764 library in current directory
2765 * tests/scanner - Update.
2767 2008-08-30 Colin Walters <walters@verbum.org>
2769 * docs/typelib-format.txt: Add a guint32
2771 * gir/Makefile.am: Dep on Makefile
2772 * girepository/ginfo.c:
2773 * girepository/girepository.c: Clean up
2774 default typelib handling; remove global
2775 default_typelib variable. Ensure we handle
2776 NULL repository in more places.
2777 Support dependency resolution.
2778 Support lazy loading.
2779 * girepository/girepository.h: Remove
2780 g_irepository_unregister; we don't support
2781 unloading typelibs since really they're
2782 process-global. Update for lazy loading
2784 * girepository/girmodule.c: Use g_new0.
2785 Add dependencies to GirModule.
2786 * girepository/girparser.c: Parse dependencies.
2787 * girepository/gtypelib.c: Add 4 bytes for
2789 * tests/Makefile.am: Kill off gobject.gir,
2790 it conflicts with the real one.
2791 * tests/object.gir: Dep on GObject.
2792 * tools/generate.c: Take --includedir
2793 argument to say which directories to search
2794 for typelibs. Print out dependencies.
2796 2008-08-30 Colin Walters <walters@verbum.org>
2798 * giscanner/glibtransformer.py: Reduce warning noise.
2800 2008-08-29 Colin Walters <walters@verbum.org>
2802 * girepository/ginfo.c: Add some assertions regarding
2803 refcounts, just to be sure.
2804 * giscanner/glibtransformer.py: Blacklist a few more
2807 2008-08-29 Colin Walters <walters@verbum.org>
2809 * giscanner/glibtransformer.py: Blacklist a few
2810 functions that use GError oddly
2812 2008-08-29 Colin Walters <walters@verbum.org>
2814 * girepository/gtypelib.c: Don't crash if no
2817 2008-08-29 Colin Walters <walters@verbum.org>
2819 * girepository/girparser.c: Handle chains of aliases
2820 across modules by ensuring we fully qualify aliases
2823 2008-08-29 Colin Walters <walters@verbum.org>
2825 * girepository/girparser.c: Don't search aliases
2828 2008-08-29 Colin Walters <walters@verbum.org>
2830 * girepository/girparser.c: Rewrite type parsing
2831 to handle both GLib parsing case as well as correctly
2832 handling GLib.List and friends. Don't try to treat
2833 e.g. ListStore as a List.
2835 2008-08-29 Colin Walters <walters@verbum.org>
2837 * girepository/gtypelib.c: Add more context
2840 2008-08-29 Colin Walters <walters@verbum.org>
2842 * giscanner/glibtransformer.py: Add some informative
2843 logging messages in corner cases. Be sure we use
2844 the most recent node set instead of a cache
2845 when generating result set.
2846 * tests/: Remove duplicated bits in expected girs
2847 * girepository/girparser.c: Accept both List (for
2848 compiling GLib) and GLib.List (what the scanner
2851 * tools/generate.c: Generate canonical form.
2853 2008-08-29 Johan Dahlin <johan@gnome.org>
2855 * giscanner/config.py.in:
2856 Use datarootdir instead of datadir to avoid
2857 an autoconf warning.
2859 2008-08-29 Johan Dahlin <johan@gnome.org>
2863 * examples/gdk-pixbuf.gidl:
2865 Update and remove old cruft.
2867 2008-08-29 Johan Dahlin <johan@gnome.org>
2870 * docs/g-ir-compiler.1:
2871 * docs/g-ir-generate.1:
2872 * docs/g-ir-scanner.1:
2873 Add man pages for the generator and compiler.
2875 2008-08-29 Johan Dahlin <johan@gnome.org>
2877 * docs/g-ir-scanner.1: Document
2879 * giscanner/Makefile.am:
2880 * giscanner/gidlparser.py:
2881 * giscanner/gidlwriter.py:
2882 * tools/g-ir-scanner:
2883 Remove gidl support.
2885 2008-08-28 Colin Walters <walters@verbum.org>
2887 * tests/scanner/Makefile.am: Pass the right
2888 --includedir args. Add a Makefile dep.
2889 * tools/compiler.c: Pass includedirs down.
2890 * girepository/girparser.c: Actually put
2891 includedirs in context, pass down. Fix
2894 2008-08-28 Colin Walters <walters@verbum.org>
2896 * gir/Makefile.am: Use --includedir
2897 * girepository/girparser.c: Recursively parse
2898 includes to pull in aliases and expand them.
2899 We need this to avoid putting unknown names in
2901 * tools/compiler.c: Add --includedir option.
2902 * giscanner/ast.py: Map size/ssize to types
2905 2008-08-28 Tor Lillqvist <tml@novell.com>
2907 Make check now runs successfully on Windows.
2909 * tools/compiler.c (write_out_typelib): Use binary mode for output
2912 * girepository/girnode.c: Don't print NULL strings.
2914 * tests/invoke/Makefile.am
2915 * tests/scanner/Makefile.am: Use -no-undefined on Windows to
2916 convince libtool to build shared libraries.
2918 * tests/invoke/invoke.c: Don't needlessly include <dlfcn.h>. Use
2919 g_assert() instead of printing out expected errors.
2921 2008-08-28 Tor Lillqvist <tml@novell.com>
2923 * girepository/gtypelib.h: Change type of bitfield fields from
2924 guint to the most suitable smaller type. This makes the struct
2925 sizes match the ones on Linux that the sanity check expects when
2926 using gcc -mms-bitfields on Windows.
2928 2008-08-28 Johan Dahlin <johan@gnome.org>
2933 * giscanner/Makefile.am:
2934 * tests/Makefile.am:
2935 * tests/scanner/Makefile.am:
2936 Make distcheck pass.
2938 2008-08-27 Johan Dahlin <johan@gnome.org>
2940 * giscanner/Makefile.am:
2941 Only send in -no-undefined on Win32 as it breaks on MacOS X.
2943 2008-08-27 Tor Lillqvist <tml@novell.com>
2945 Make g-ir-scanner work on Windows. Still problems with the typelib
2946 code. Changes okayed by jdahlin.
2948 * configure.ac: Check for Windows, set Automake conditional
2949 OS_WIN32. Change backslashes to forward slashes in pyexecdir to
2950 avoid shell quoting issues
2952 * girepository/Makefile.am: Use -no-undefined so that libtool
2953 agrees to build a shared library on Windows.
2955 * girepository/girparser.c (backtrace_stderr): No backtrace() on
2956 Windows. Empty implementation on Windows so far.
2958 * girepository/gtypelib.c (g_typelib_check_sanity): Give more
2959 informative error message for the assertion failures. Tell also
2960 what the expected size of the struct is. Check all sizes first and
2961 fail afterwards if at least one size was different from expected.
2963 * tools/Makefile.am: Reorder libraries into proper logical
2966 * tools/generate.c: Don't include <dlfcn.h>, not used.
2968 * giscanner/Makefile.am: On Windows, link with the Python library,
2969 and install the module DLL as _giscanner.pyd. Remove the
2970 unnecessary import library and libtool library that libtool has
2973 * giscanner/scannerlexer.l: Recognize the gcc __attribute__ syntax
2974 and just skip it. Recognize also two "l" suffixes for long long
2975 constants. Recognize also __inline__.
2977 * giscanner/grealpath.h (g_realpath): Implement on Windows, using
2978 GetFullPathName(). As such, GetFullPathName() does more than the
2979 UNIX realpath(). It also changes relative paths into absolute
2980 paths. But for our purposes that shouldn't matter.
2982 * giscanner/giscannermodule.c (pygi_source_scanner_parse_file): On
2983 Windows the file descriptor passed to us is from Python. Python
2984 Python2.5 uses the msvcr71.dll C library, while mingw-built code
2985 uses msvcrt.dll. On Windows, file descriptors are specific to
2986 which C library is used. So we must find out what underlying OS
2987 handle corresponds to the file descriptor Python passes us, and
2988 then make that into a file descriptor valid for the C library this
2991 * giscanner/sourcescanner.py (_parse): Don't need to bypass
2992 __attribute__ as the lexer now handles it. The definition as empty
2993 was ineffective for mingw anyway, as mingw's _mingw.h undefines
2994 __attribute__. Close the temp file before unlinking it.
2996 * giscanner/cgobject.py: Use correct library name for the gobject
2999 * gir/Makefile.am: Must pass the full basename of the DLLs on
3000 Windows to g-ir-scanner. It's a bit ugly that we have to "know"
3001 that the names of the GLib DLLs are like libglib-2.0-0.dll, but in
3002 reality they won't change, until there is a GLib 3, and then also
3003 the Unix code here needs changing.
3005 Must pass CPPFLAGS to g-ir-scanner when building GLib.gir so that
3008 2008-08-26 Colin Walters <walters@verbum.org>
3010 * girepository/girepository.c: Search
3011 $DATADIR/girepository instead of
3012 $DATADIR/gitypelibs; this naming makes
3013 it clearer that e.g. jgir can install
3015 * gir/Makefile.am: Install there.
3017 2008-08-26 Colin Walters <walters@verbum.org>
3019 * girepository/gtypelib.c (_g_typelib_init): Also
3020 use G_MODULE_SUFFIX instead of hardcoding .so.
3022 2008-08-26 Colin Walters <walters@verbum.org>
3024 * girepository/gtypelib.c (_g_typelib_init): Free
3025 string in the right place.
3027 2008-08-26 Colin Walters <walters@verbum.org>
3029 * girepository/gtypelib.c (_g_typelib_init): Handle
3030 both .la and .so names; this works better in the
3031 uninstalled library case.
3033 2008-08-26 Johan Dahlin <johan@gnome.org>
3036 * giscanner/Makefile.am:
3037 * giscanner/cgobject.py:
3038 * giscanner/config.py.in:
3039 * giscanner/sourcescanner.py:
3040 Avoid undeffing __GNUC__, instead define
3041 __attribute__ & friends. Remove glibconfig.h hack.
3042 This makes gobject-introspection work better on
3043 MacOS X, Thanks to Richard Hult for kind help.
3045 2008-08-25 Colin Walters <walters@verbum.org>
3047 * giscanner/glibtransformer.py: Always print
3050 2008-08-25 Colin Walters <walters@verbum.org>
3052 * giscanner/glibtransformer.py: Skip over
3053 interfaces we don't know.
3055 2008-08-25 Colin Walters <walters@verbum.org>
3057 * girepository/girparser.c: Parse new implements
3058 syntax, drop gapi one.
3059 * tests/object.gir: Update.
3060 * tools/generate.c: Generate new syntax.
3062 2008-08-25 Colin Walters <walters@verbum.org>
3064 * giscanner/ast.py: Add interfaces property
3066 * giscanner/girwriter.py: Write out implemented
3068 * giscanner/glibtransformer.py: Introspect
3069 implemented interfaces.
3070 * tests/scanner/*: Make FooObject implement
3073 2008-08-25 Colin Walters <walters@verbum.org>
3075 * giscanner/glibtransformer.py: More correctly pair
3076 methods; if we have a symbol that starts with
3077 e.g. hippo_canvas look for a matching HippoCanvas
3078 class before accepting e.g. HippoCanvasImage.
3080 2008-08-24 Colin Walters <walters@verbum.org>
3082 * tools/g-ir-scanner: Filter out unknown options from
3085 2008-08-24 Colin Walters <walters@verbum.org>
3087 * giscanner/glibtransformer.py: Fail with better
3088 error if we can't find library.
3090 2008-08-24 Colin Walters <walters@verbum.org>
3092 * tools/g-ir-scanner: Use subprocess instead of
3093 commands, works on Windows and avoids the evil
3096 2008-08-24 Colin Walters <walters@verbum.org>
3098 * giscanner/glibtransformer.py: Skip over
3099 g_object_get_type from GLib trunk.
3101 2008-08-24 Colin Walters <walters@verbum.org>
3103 * girepository/girepository.c (g_irepository_require):
3104 Don't open shared library here; we already do it
3107 2008-08-24 Colin Walters <walters@verbum.org>
3109 * girepository/gtypelib.c: Add context stack so
3110 when we get an error we can print out nicely
3113 2008-08-24 Johan Dahlin <johan@gnome.org>
3115 * girepository/girparser.c (start_glib_boxed), (start_function),
3116 (start_field), (start_alias):
3117 Refactor a couple of parsing functions to be simpler to follow.
3120 2008-08-24 Johan Dahlin <johan@gnome.org>
3122 * girepository/girparser.c (start_function):
3123 Remove left-over code, checking type of function.
3125 2008-08-23 Colin Walters <walters@verbum.org>
3127 * giscanner/config.py: Define DATADIR.
3128 * giscanner/transformer.py: Look in DATADIR.
3130 2008-08-23 Colin Walters <walters@verbum.org>
3132 * girepository/gtypelib.c: Check constructor
3134 * girepository/girnode.c: Small tweaks.
3135 * girepository/ginfo.c: Calculate signature offsets
3137 * girepository/girparser.c: Remove duplicate
3139 * giscanner/glibtransformer.py: Avoid marking
3140 functions which return a basic type as
3143 2008-08-23 Colin Walters <walters@verbum.org>
3145 * girepository/girparser.c: Ignore <include>.
3146 * giscanner/girparser.py: Parse them.
3147 * giscanner/girwriter.py: Generate them.
3148 * giscanner/transformer.py: Process <include>
3149 recursively. Don't require full path for
3150 includes, look in {$XDG_DATA_DIRS}/gir.
3151 * tools/g-ir-scanner: Pass through includes.
3152 * Makefile.am: Remove extra --include
3154 * *-expected.gir: Add expected includes.
3156 2008-08-23 Johan Dahlin <johan@gnome.org>
3158 * tests/scanner/Makefile.am:
3159 * tests/scanner/annotation-expected.gir:
3160 * tests/scanner/drawable-expected.gir:
3161 Avoid duplication in the Makefile, regenerate with new
3162 namespaces (same as the filename)
3164 2008-08-22 Colin Walters <walters@verbum.org>
3166 * girepository/girnode.c: Don't hardcode integers,
3169 2008-08-22 Johan Dahlin <johan@gnome.org>
3171 * giscanner/sourcescanner.py:
3172 Check for ../gobject-introspection-1.0.pc.in to determine
3173 if we run installed or uninstalled.
3175 2008-08-22 Johan Dahlin <johan@gnome.org>
3178 * giscanner/sourcescanner.py:
3179 Send in undefs/defines via writing it directly to stdin
3180 of cpp instead of via arguments.
3182 2008-08-22 Colin Walters <walters@verbum.org>
3184 * tools/generate.c, tools/compiler.c: Default
3186 * all Makefile.am: Update.
3188 2008-08-22 Colin Walters <walters@verbum.org>
3190 * girepository/girparser.c: Pass through
3191 recursive types. Avoid overwriting errors.
3192 * giscanner/xmlwriter.py: Always write the
3194 * tests/*.gir: Adjust.
3195 * tests/scanner/Makefile.am: Build typelibs,
3196 and generate XML from those. Once we
3197 have a good diff mechanism...
3198 * tests/scanner/*-expected.gir: Add XML
3200 * tools/g-ir-scanner: Accept --typelib-xml
3202 * tools/generate.c: Better defaults for transfer.
3204 2008-08-22 Johan Dahlin <johan@gnome.org>
3208 * giscanner/Makefile.am:
3209 * giscanner/config.py.in:
3210 * giscanner/sourcescanner.py:
3211 Use the generated glibconfig.h for all scanner invokations.
3212 Rename it to glibconfig-scanner.h and install it.
3213 Add a config.py which so far contains the include dir.
3215 2008-08-22 Johan Dahlin <johan@gnome.org>
3218 Replace glibconfig.h with our own, do some replacement
3219 for CPP/C features we do not support
3221 2008-08-22 Colin Walters <walters@verbum.org>
3223 * tools/generate.c (write_callable_info): Fix unref
3226 2008-08-22 Colin Walters <walters@verbum.org>
3228 * gobject-introspection-1.0.pc.in: Add g-ir-generate.
3229 * tests/Makefile.am: Support $(DEBUG)
3230 * tools/generate.c: Do immediate close tags if no
3233 2008-08-21 Colin Walters <walters@verbum.org>
3235 * tests/scanner/drawable-expected.gir,
3236 * tests/scanner/drawable.c,
3237 * tests/scanner/drawable.h:
3240 2008-08-21 Colin Walters <walters@verbum.org>
3242 * giscanner/glibtransformer.py: Compute prefix
3243 by searching through the symbol for bits
3244 rather than going directly from ctype; this fixes
3247 2008-08-21 Colin Walters <walters@verbum.org>
3249 * giscanner/glibtransformer.py: Also try squashing
3250 underscores from namespace, fixes webkit_web_view_new.
3252 2008-08-21 Colin Walters <walters@verbum.org>
3254 * giscanner/glibtransformer.py: More ctor work,
3255 avoid having gtk_window_group_new end up under
3258 2008-08-21 Colin Walters <walters@verbum.org>
3260 * giscanner/glibtransformer.py: Much simpler approach
3261 of mapping uscored names to classes.
3262 * giscanner/utils.py: Remove unnecessary function.
3264 2008-08-21 Johan Dahlin <johan@gnome.org>
3266 * girepository/girepository.c (g_irepository_require):
3267 Plug memory leak and avoid using freed memory.
3268 Resolve the whole module path, here as well.
3270 2008-08-21 Colin Walters <walters@verbum.org>
3272 * giscanner/glibtransformer.py: Look up all permutations
3273 of class names when scanning methods/ctors based on
3274 the prefix instead of using the return value. This
3275 associates gtk_window_new with the right class.
3277 2008-08-21 Colin Walters <walters@verbum.org>
3279 * girepository/girmodule.c (g_ir_module_build_typelib):
3280 Revert change to increment header_size; we do that in
3283 2008-08-21 Colin Walters <walters@verbum.org>
3285 * girepository/girnode.c (write_string): Tweak to
3286 use UINT instead of INT. Not likely to matter.
3287 * girepository/girmodule.c (g_ir_module_build_typelib):
3288 Add to header_offset as well for header strings
3289 to match what write_string does.
3290 * girepository/gtypelib.c: Replace is_name with
3291 validate_name, which more strongly validates and
3292 handles errors in a better way. Update all callers.
3293 * giscanner/glibtransformer.py: Handle constructors
3296 2008-08-21 Johan Dahlin <johan@gnome.org>
3298 * gir/Makefile.am (typelibs_DATA): Build and
3299 install the Gio.typelib too
3301 * girepository/gtypelib.c (_g_typelib_init):
3302 Use g_module_build_path to resolve the shlib name
3304 2008-08-21 Colin Walters <walters@verbum.org>
3306 * gir/Makefile.am: CLEANFILES typelibs too.
3308 2008-08-21 Johan Dahlin <johan@gnome.org>
3310 * giscanner/glibtransformer.py:
3311 Do not send .la files through find_library.
3313 2008-08-21 Colin Walters <walters@verbum.org>
3315 * girepository/girparser.c (g_irepository_require):
3316 Fix one small leak in error case.
3318 2008-08-21 Johan Dahlin <johan@gnome.org>
3321 Parse glibconfig.h as well and install the compiled
3324 2008-08-21 Johan Dahlin <johan@gnome.org>
3327 * giscanner/glibtransformer.py:
3328 * tools/g-ir-scanner:
3329 Do not hard-core library names in the Makefile, reuse
3330 ctypes find_library instead.
3332 2008-08-21 Johan Dahlin <johan@gnome.org>
3334 * girepository/girparser.c (resolve_aliases):
3335 Remove compilation warnings
3337 2008-08-21 Johan Dahlin <johan@gnome.org>
3339 * girepository/girepository.c (g_irepository_require):
3340 Rewrap and fix double free bug by leaking a bit.
3342 2008-08-20 Colin Walters <walters@verbum.org>
3344 * girepository/girepository.c: Add new function
3345 g_irepository_get_typelib_path which tells
3346 us from where we loaded a namespace.
3348 2008-08-20 Colin Walters <walters@verbum.org>
3350 * tests/scanner/*-expected.gir: Adjust for
3351 added shared-library.
3352 * giscanner/giwriter.py: Make pylint happy.
3354 2008-08-20 Colin Walters <walters@verbum.org>
3356 * girepository/girmodule.c (g_ir_module_build_typelib):
3357 Calculate size correctly, avoid use-after-free.
3359 2008-08-20 Colin Walters <walters@verbum.org>
3361 * girepository/girepository.c: Remove
3362 g_irepository_register_file in favor of
3363 g_irepository_require. There are two
3364 possible deployment scenarios for typelibs:
3365 First, separate in $DATADIR/gitypelibs/. Second,
3366 they may be embedded in shlibs. However since
3367 the first is now the normal case, the API is
3368 optimized around it.
3370 Refactor internals to look up typelibs for
3371 namespaces just-in-time, but we expect
3372 consumers to call g_irepository_require.
3374 Also, add some docs. No one has died from that
3376 * gir/Makefile.am: Need --library for glib.
3377 * giscanner/girwriter.py: Write out shared-library.
3378 * tools/g-ir-writer: Take the first --library
3379 argument as the target of shared-library. In
3380 the future we should make this nicer with pkg-config
3383 2008-08-20 Colin Walters <walters@verbum.org>
3385 * girepository/girparser.py: And parse them.
3387 2008-08-20 Johan Dahlin <johan@gnome.org>
3389 * giscanner/glibast.py: Add gshort/gushort types
3391 2008-08-20 Colin Walters <walters@verbum.org>
3393 * gir/Makefile.am: Rename .gir files using GI namespace.
3394 * girepository/girepository.c: Use XDG_DATA_DIRS for
3395 looking up typelibs. Also typelibs are now suffixed
3397 * tests/invoke/Makefile.am: Only use metadata.
3398 * girepository/Makefile.am: Remove unnecessary include.
3399 * tests/scanner/Makefile.am: Update using GI namespaces
3400 for scanner includes.
3402 2008-08-20 Colin Walters <walters@verbum.org>
3404 * girepository/transformer.py: Suppress aliases whose
3406 * girepository/ast.py: Define some more aliases.
3408 2008-08-20 Colin Walters <walters@verbum.org>
3410 * girepository/girparser.c: Avoid alias infloops.
3412 2008-08-20 Colin Walters <walters@verbum.org>
3414 * tests/scanner/foo-expected.gir: Fix expected list type.
3416 2008-08-20 Johan Dahlin <johan@gnome.org>
3418 * giscanner/glibtransformer.py (GLibTransformer._resolve_type_name):
3419 Add a workaround for #548689.
3420 We can now compile gtk!
3422 2008-08-20 Colin Walters <walters@verbum.org>
3424 * giscanner/glibtransformer.py: Try to look up
3425 aliases using the c:type too.
3427 2008-08-20 Colin Walters <walters@verbum.org>
3429 * girepository/girparser.c: Parse union fields.
3431 2008-08-20 Johan Dahlin <johan@gnome.org>
3433 * giscanner/ast.py: Make time_t an alias for long
3435 * gir/gio-2.0-good.gir:
3436 * gir/glib-2.0-good.gir:
3437 * gir/gobject-2.0-good.gir:
3439 * giscanner/glibtransformer.py:
3440 Do not delete Class structures, we need them in gdk/gtk.
3441 * tests/scanner/drawable-expected.gir:
3442 * tests/scanner/foo-expected.gir:
3443 * tests/scanner/utility-expected.gir:
3446 2008-08-20 Johan Dahlin <johan@gnome.org>
3448 * tests/scanner/Makefile.am:
3449 * tests/scanner/annotation-expected.gir:
3450 * tests/scanner/annotation.c (annotation_object_class_init),
3451 (annotation_object_init), (annotation_object_method),
3452 (annotation_object_in), (annotation_object_out),
3453 (annotation_object_inout), (annotation_object_inout2),
3454 (annotation_object_inout3), (annotation_object_calleeowns),
3455 (annotation_object_calleesowns), (annotation_object_get_strings),
3456 (annotation_object_with_voidp), (annotation_object_get_objects),
3457 (annotation_object_create_object), (annotation_object_allow_none):
3458 * tests/scanner/annotation.h:
3459 * tests/scanner/foo-expected.gir:
3460 * tests/scanner/foo.c:
3461 * tests/scanner/foo.h:
3462 Split out annotation tests out of foo
3464 2008-08-20 Johan Dahlin <johan@gnome.org>
3466 * tests/scanner/Foo-expected.gir:
3467 * tests/scanner/Makefile.am:
3468 * tests/scanner/foo-expected.gir:
3469 * tests/scanner/foo-object.h:
3470 * tests/scanner/foo.c:
3471 Foo->foo, foo-object.h -> foo.h
3473 2008-08-20 Johan Dahlin <johan@gnome.org>
3475 * tests/scanner/Foo-expected.gir:
3476 * tests/scanner/Makefile.am:
3477 * tests/scanner/drawable-expected.gir:
3478 * tests/scanner/drawable.c (test_drawable_class_init),
3479 (test_drawable_init):
3480 * tests/scanner/drawable.h:
3481 * tests/scanner/foo-object.h:
3482 * tests/scanner/foo.c (foo_boxed_method):
3483 Move the drawable parts out of Foo to its own test.
3485 2008-08-20 Johan Dahlin <johan@gnome.org>
3487 * tests/scanner/Foo-expected.gir:
3488 * tests/scanner/foo-object.h:
3489 * tests/scanner/foo.c (foo_drawable_class_init),
3490 (foo_drawable_init):
3491 Add a based on GdkDrawable which generates
3494 2008-08-19 Colin Walters <walters@verbum.org>
3496 * giscanner/transformer.py: Don't try
3497 to strip prefix before namespace.
3499 2008-08-19 Johan Dahlin <johan@gnome.org>
3501 * giscanner/transformer.py:
3502 * tests/scanner/Foo-expected.gir:
3503 * tests/scanner/foo-object.h:
3504 Add support for typedef void foo type of
3507 2008-08-19 Johan Dahlin <johan@gnome.org>
3510 * giscanner/girwriter.py:
3511 * giscanner/glibtransformer.py:
3512 * giscanner/transformer.py:
3513 * tests/scanner/Foo-expected.gir:
3514 Add basic support for union, base the code much
3515 on Struct. Add a testcase.
3517 2008-08-19 Johan Dahlin <johan@gnome.org>
3519 * tests/scanner/Foo-expected.gir:
3520 * tests/scanner/foo-object.h:
3521 Add a union testcase which the compiler currently
3524 2008-08-19 Johan Dahlin <johan@gnome.org>
3526 * gobject-introspection-1.0.pc.in:
3527 Add a g_ir_compiler variable
3529 2008-08-19 Colin Walters <walters@verbum.org>
3531 * giscanner/ast.py: Rework types to be more closely
3533 * giscanner/girparser.py: Parse more bits.
3534 * giscanner/girwriter.py: Write sequences in a new
3535 way that specifies container type.
3536 * giscanner/glibast.py: Adjust for ast.py changes,
3537 add 'ctype' property to GLibObject and GLibInterface
3538 so we can look things up by it later.
3539 * gicanner/transformer.py: Names is new class holding
3540 the various namespaces we manage. Do not confuse
3541 with Namespace which is toplevel XML node effectively.
3542 Rework all type resolution to go through
3543 _resolve_type_name_1.
3544 * giscanner/glibtransformer.py: Raise UnknownTypeError
3545 instead of ValueError for cleanliness. Add Unresolved
3546 class to mark types whose parent we haven't seen yet.
3547 Use new Names object from transformer.py.
3548 Correctly look up parent=.
3549 Fix type validation to handle sequences.
3550 * tests/scanner/Foo-expected.gir: Update for sequence
3551 work, int instead of int32.
3552 * tools/g-ir-scanner: Add --noclosure option
3553 * gir/Makefile.am: Use --noclosure by default for
3556 2008-08-18 Johan Dahlin <johan@gnome.org>
3558 * gir/gio-2.0-good.gir:
3559 * gir/glib-2.0-good.gir:
3560 * gir/gobject-2.0-good.gir:
3563 2008-08-18 Johan Dahlin <johan@gnome.org>
3566 * giscanner/girparser.py:
3567 * giscanner/girwriter.py:
3568 * giscanner/glibast.py:
3569 * giscanner/glibtransformer.py:
3570 * giscanner/transformer.py:
3571 * tests/scanner/Foo-expected.gir:
3572 * tests/scanner/foo-object.h:
3573 * tests/scanner/utility-expected.gir:
3574 * tests/scanner/utility.h:
3575 Redo type resolving and validation.
3576 Add a couple of new tests.
3577 Patch mostly written by Colin.
3579 2008-08-18 Johan Dahlin <johan@gnome.org>
3582 * giscanner/girparser.py:
3584 * giscanner/transformer.py:
3585 Improve enum parsing for enums without a GType.
3586 Make flags/enum references to other girs work
3587 * giscanner/utils.py:
3589 * tests/scanner/Makefile.am:
3590 * tests/scanner/foo-object.h:
3591 * tests/scanner/utility-expected.gir:
3592 * tests/scanner/utility.h:
3593 Add a new test for external enum references
3595 2008-08-18 Johan Dahlin <johan@gnome.org>
3597 * docs/global-module-registry.txt: Update
3599 * tests/array.gir: Update with new type proposal
3601 * girepository/girepository.c (g_type_tag_to_string):
3602 * girepository/girepository.h:
3603 * girepository/girnode.c (g_ir_node_get_full_size_internal),
3605 * girepository/girnode.h:
3606 Make enum serializing functions public. Clean up some whitespace.
3608 2008-08-17 Johan Dahlin <johan@gnome.org>
3610 * docs/global-module-registry.txt:
3611 Add a document for an on disk module registry format
3613 2008-08-17 Johan Dahlin <johan@gnome.org>
3616 * gir/gio-2.0-good.gir:
3619 2008-08-17 Johan Dahlin <johan@gnome.org>
3622 * gir/glib-2.0-good.gir:
3623 * gir/gobject-2.0-good.gir:
3624 * giscanner/cgobject.py:
3625 * giscanner/glibtransformer.py:
3626 Regenerate GObject & GType.
3627 Avoid warnings when generating gobject-2.0.gir.
3628 Introspect a little more, and skip *_get_type functions.
3630 2008-08-17 Colin Walters <walters@verbum.org>
3632 * gir/glib-2.0.gir, gir/gobject-2.0.gir:
3633 Rename to -good, always generate during build.
3634 * gir/Makefile.am: Ensure .gir files dep on
3635 all scanner sources.
3636 * Makefile.am: Switch build order to ensure
3637 the scanner is ready before we do gir/.
3638 * tools/g-ir-scanner: Look for .git too.
3640 2008-08-17 Johan Dahlin <johan@gnome.org>
3642 * girepository/gtypelib.c (validate_enum_blob):
3643 * giscanner/glibtransformer.py:
3644 * giscanner/transformer.py:
3645 Remove resolve_possible_typedefs, it was unused.
3646 Allow multiple enum values of the sample value in an enum,
3647 since it's actually pretty common.
3648 Register enums so they can be resolved too.
3650 2008-08-16 Johan Dahlin <johan@gnome.org>
3652 * giscanner/girparser.py:
3653 Parse enumeration/bitfield.
3655 2008-08-16 Johan Dahlin <johan@gnome.org>
3657 * giscanner/girparser.py:
3660 2008-08-16 Johan Dahlin <johan@gnome.org>
3662 * giscanner/glibtransformer.py:
3663 Resolve type names for alias targets
3664 * giscanner/transformer.py:
3665 Skip FILE* parameters fow now
3667 2008-08-16 Johan Dahlin <johan@gnome.org>
3670 * gir/gobject-2.0.gir:
3673 * tests/scanner/Makefile.am:
3676 2008-08-15 Colin Walters <walters@verbum.org>
3678 * giscanner/glibtransformer.py: Explicitly construct
3679 new list, since we're deleting as we iterate.
3680 Don't delete all structures which end in Class; just
3681 ones which have a paired GObject.
3682 Fix printing of type warning.
3683 * giscanner/transformer.py: Make strip_namespace_object
3684 be the identity function if it doesn't match the
3687 2008-08-15 Colin Walters <walters@verbum.org>
3689 * giscanner/cgobject.py: Define yet more argument
3690 prototypes; fix prototype for g_type_fundamental.
3692 2008-08-14 Johan Dahlin <johan@gnome.org>
3694 * tests/Makefile.am:
3695 * tests/constant.gir:
3696 * tests/gobject.gir:
3698 * tools/generate.c (write_struct_info):
3699 Fix generator for constant/gobject/struct
3701 2008-08-14 Johan Dahlin <johan@gnome.org>
3703 * tests/Makefile.am:
3705 * tools/generate.c (write_enum_info):
3706 Fix generation of enum/bitfields
3708 2008-08-14 Johan Dahlin <johan@gnome.org>
3710 * girepository/girparser.c (start_field), (start_constant),
3711 (start_type), (end_element_handler):
3712 Clear up constant parsing
3717 * tools/generate.c (write_callable_info), (write_function_info),
3718 (write_callback_info), (write_constant_info), (write_signal_info),
3719 (write_vfunc_info), (write_property_info), (write_object_info),
3720 (write_interface_info):
3721 Constants/Signals are handled now.
3723 2008-08-14 Johan Dahlin <johan@gnome.org>
3725 * girepository/girparser.c (start_type):
3726 Don't require c:type.
3727 * tests/Makefile.am:
3730 Update, remove parts we don't support yet
3731 * tests/roundtrips.sh:
3733 * tools/generate.c (write_type_info), (write_field_info),
3734 (write_callable_info), (write_struct_info):
3735 Make it emit proper gir.
3737 2008-08-14 Johan Dahlin <johan@gnome.org>
3739 * giscanner/transformer.py:
3740 New internal function for adding a new node.
3742 2008-08-14 Johan Dahlin <johan@gnome.org>
3745 Define an internal _H_ variable so we skip parsing both
3746 i18n headers, only one is needed.
3748 Add the glib-2.0.gir too.
3749 * giscanner/glibast.py:
3750 Add gconstpointer as an alias for ANY
3751 * giscanner/transformer.py:
3752 Do not lower case enumeration names per se.
3753 Skip functions which has parameters called 'va_list'
3755 2008-08-14 Colin Walters <walters@verbum.org>
3757 * giscanner/transformer.py: Comment data structures.
3758 Also squash pointers in resolve_type_name to correspond
3759 with what we do for params.
3760 * giscanner/glibtransformer.py: Print warnings in more
3761 situations. Rework checks for method/constructor to
3762 look up in our GType database instead of just checking
3763 for *. Avoid generating <record> for GObject which
3764 duplicate the <class>.
3765 * gir/Makefile.am: Generate glib-2.0.gir and gobject-2.0.gir
3768 2008-08-14 Johan Dahlin <johan@gnome.org>
3770 * giscanner/girwriter.py:
3771 * giscanner/glibast.py:
3772 * giscanner/glibtransformer.py:
3773 * giscanner/transformer.py:
3775 * tests/Makefile.am:
3776 Add pyflakes.py and run it in make check.
3777 Update the source code to fix the errors reported by
3780 2008-08-14 Johan Dahlin <johan@gnome.org>
3783 * giscanner/girparser.py:
3784 * giscanner/glibast.py:
3785 * giscanner/glibtransformer.py:
3786 Refactor the parser a bit.
3787 Add parent type to interfaces and update callsites.
3789 2008-08-14 Johan Dahlin <johan@gnome.org>
3791 * giscanner/glibtransformer.py:
3792 * giscanner/utils.py:
3793 Refactor a bit, avoid isinstance and add a method
3794 for each type we parse.
3796 2008-08-14 Johan Dahlin <johan@gnome.org>
3799 * giscanner/girparser.py:
3800 * giscanner/glibtransformer.py:
3801 * tests/Makefile.am:
3802 Run pep8.py in make check, fix old errors.
3804 2008-08-13 Colin Walters <walters@verbum.org>
3806 * giscanner/girparser.py: Parse records.
3808 2008-08-13 Colin Walters <walters@verbum.org>
3810 * gir/Makefile.am: Install again.
3811 * gir/gobject-2.0.gir: Add some more bits.
3813 2008-08-13 Colin Walters <walters@verbum.org>
3815 * gir/gobject-2.0.gir: Use correct namespace, add GType.
3816 * giscanner/girparser.py: Handle aliases.
3817 * giscanner/transformer.py: Record aliases. Make resolver
3818 functions public; we now call into these explicitly from
3819 glibtransformer. Handle resolving aliases.
3820 * giscanner/glibtransformer.py: Separate our internal namespace
3821 from included ones. Call up into transformer's resolver functions.
3823 2008-08-13 Johan Dahlin <johan@gnome.org>
3825 * girepository/girnode.c (g_ir_node_get_full_size_internal):
3826 * girepository/girparser.c (start_class):
3827 * giscanner/glibtransformer.py:
3828 Allow get_type to be None, set a get_type for GInitiallyUnowned too.
3830 2008-08-13 Johan Dahlin <johan@gnome.org>
3832 * giscanner/cgobject.py:
3833 Register GInitiallyUnowned
3834 * giscanner/girwriter.py:
3835 * giscanner/glibtransformer.py:
3836 Special case GObject/GInitially owned as they are a bit special to use.
3838 2008-08-13 Colin Walters <walters@verbum.org>
3840 * tests/scanner/Foo-expected.gir, tests/scanner/utility-expected.gir:
3841 Object is in GObject namespace.
3843 2008-08-13 Colin Walters <walters@verbum.org>
3845 * giscanner/girparser.py: Fix processing of functions
3848 2008-08-13 Colin Walters <walters@verbum.org>
3850 * giscanner/girparser.py: Parse more than just <class.
3851 * giscanner/glibtransformer.py: Put aliases in a separate
3852 data structure since their name is not canonicall.
3853 * giscanner/transformer.py: Handle resolving type names
3856 2008-08-13 Johan Dahlin <johan@gnome.org>
3858 * tools/g-ir-scanner:
3859 Allow multiple libraries
3860 * giscanner/glibtransformer.py:
3861 Rename load_library to add_library, traverse over all libraries
3862 when trying to resolve a function
3864 2008-08-12 Colin Walters <walters@verbum.org>
3866 * giscanner/transformer.py: Record typedefs as <alias> elements.
3867 Also attempt to look up types in external namespaces.
3868 * giscanner/girwriter.py: Write them.
3869 * giscanner/glibtransformer.py: Rework resolver using real instanceof
3870 checks. Resolve interface methods and properties.
3871 * tests/scanner/foo-object.h: Add a method with typedef.
3872 * tests/scanner/Foo-expected.gir: Update.
3873 * girepository/girnode.c: Debug tweaks.
3874 * girepository/girparser.c: Make a first pass through the XML where we
3875 record all the aliases. This lets us resolve them as we go through the
3877 * gir/Makefile.am: Don't install gobject-2.0.gir; we want that to come
3878 from gir-repository.
3880 2008-08-12 Colin Walters <walters@verbum.org>
3882 * giscanner/glibtransformer.py: Resolve typedefs (e.g. AtkAttributeSet -> GSList).
3883 Correctly do subclasseing in 2nd pass resolution. Handle callbacks in structure
3885 * giscanner/transformer.py: Record typedefs and expose public API for resolving
3887 * tests/scanner/Foo-expected.gir: Fix expected callback types.
3889 2008-08-12 Colin Walters <walters@verbum.org>
3891 * giscanner/glibtransformer.py: Also transform object properties.
3893 2008-08-12 Colin Walters <walters@verbum.org>
3895 * giscanner/glibtransformer.py: Also transform callbacks
3896 and structure field types.
3897 * tests/scanner/Fooe-expected.gir: Update to expect correct
3898 names for callbacks and structs.
3900 2008-08-12 Colin Walters <walters@verbum.org>
3902 * girepository/girparser.c: Handle 'any'.
3903 * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
3904 Add test for void *.
3906 2008-08-12 Colin Walters <walters@verbum.org>
3908 * giscanner/glibtransformer.py: We need to do type
3909 resolution in a second pass after we've seen all the
3910 enums, records, etc.
3912 2008-08-12 Colin Walters <walters@verbum.org>
3914 * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
3915 Add enum return value.
3916 * giscanner/glibtransformer.py: Transform function return types
3919 2008-08-12 Colin Walters <walters@verbum.org>
3921 * tests/scanner/Makefile.am: Dep .gir files on scanner
3922 sources too. Also remove @ so we see scanner invocations.
3924 2008-08-12 Colin Walters <walters@verbum.org>
3926 * girepository/girparser.c, girepository/gtypelib.c,
3927 girepository/gtypelib.h, girepository/girnode.c:
3928 Remove usage of (GAPI-oriented) TypeTag in favor of
3929 GITypeTag from girepository.h.
3931 2008-08-10 Colin Walters <walters@verbum.org>
3933 * tests/roundtrips.sh: Use the correct tests.
3935 2008-08-10 Colin Walters <walters@verbum.org>
3937 * giscanner/cgobject.py: Declare/wrap a few more functions.
3938 Fix parameter types for g_object_new and g_type_fundamental.
3940 2008-08-10 Colin Walters <walters@verbum.org>
3942 * giscanner/cgobject.py: Add new decorator @gwrap which forces
3943 us to declare types for both return value and parameters. The
3944 ctypes default of 'int' is bad because it hides 32/64 bit
3945 problems. Convert all existing functions to use it.
3947 2008-08-09 Johan Dahlin <johan@gnome.org>
3949 * giscanner/__init__.py:
3951 * giscanner/cgobject.py:
3952 * giscanner/gidlparser.py:
3953 * giscanner/gidlwriter.py:
3954 * giscanner/girparser.py:
3955 * giscanner/girwriter.py:
3956 * giscanner/glibast.py:
3957 * giscanner/glibtransformer.py:
3958 * giscanner/odict.py:
3959 * giscanner/sourcescanner.py:
3960 * giscanner/transformer.py:
3961 * giscanner/utils.py:
3962 * giscanner/xmlwriter.py:
3963 * tools/g-ir-scanner:
3967 2008-08-09 Johan Dahlin <johan@gnome.org>
3970 * relaxng/c-types.xml:
3971 * relaxng/g-types.xml:
3972 * relaxng/relaxng.rng:
3974 Remove outdated relaxng schemas.
3976 2008-08-09 Johan Dahlin <johan@gnome.org>
3979 Rename metadata to typelib in variable names,
3982 2008-08-09 Johan Dahlin <johan@gnome.org>
3986 Remove old C scanner, which got rewritten in python.
3988 2008-08-09 Johan Dahlin <johan@gnome.org>
3990 * girepository/Makefile.am:
3991 * tools/Makefile.am:
3992 * tools/girmodule.c:
3993 * tools/girmodule.h:
3996 * tools/girparser.c:
3997 * tools/girparser.h:
3998 * tools/girwriter.c:
3999 * tools/girwriter.h:
4000 Move shared *.[ch] files to girepository from tools
4002 2008-08-09 Johan Dahlin <johan@gnome.org>
4004 * tests/Makefile.am:
4007 * tests/constant.test:
4009 * tests/errors.test:
4010 * tests/function.test:
4011 * tests/gobject.test:
4012 * tests/interface.test:
4013 * tests/object.test:
4014 * tests/struct.test:
4019 Rename *.test to *.gir
4021 2008-08-09 Johan Dahlin <johan@gnome.org>
4024 * tests/Makefile.am:
4025 * tests/parser/Foo-expected.gir:
4026 * tests/parser/Makefile.am:
4027 * tests/parser/foo-object.h:
4028 * tests/parser/foo.c:
4029 * tests/parser/utility-expected.gir:
4030 * tests/parser/utility.c:
4031 * tests/parser/utility.h:
4032 * tests/scanner/Makefile.am:
4033 Rename tests/parser to test/scanner
4035 2008-08-08 Colin Walters <walters@verbum.org>
4037 * tests/roundtrips.sh: Use local .gir files again.
4039 2008-08-08 Colin Walters <walters@verbum.org>
4041 * tests/invoke/Makefile.am: .gir file depends on libtool
4044 2008-08-08 Colin Walters <walters@verbum.org>
4046 * tools/girnode.c: Pass through parent node so we can
4047 print the node whose child is NULL, if that occurs.
4049 2008-08-08 Johan Dahlin <johan@gnome.org>
4051 * tests/Makefile.am:
4052 Disable roundtrip tests which are not yet working
4053 * tests/invoke/testfns.gir:
4056 2008-08-08 Johan Dahlin <johan@gnome.org>
4058 * giscanner/girwriter.py:
4060 * giscanner/glibast.py:
4061 * giscanner/glibtransformer.py:
4062 Swap order of members, to keep it consistent with
4065 2008-08-08 Johan Dahlin <johan@gnome.org>
4067 * girepository/gtypelib.c (validate_header):
4068 * girepository/gtypelib.h:
4070 * giscanner/girwriter.py:
4071 * giscanner/sourcescanner.c (gi_source_symbol_ref),
4072 (gi_source_symbol_unref):
4075 * tests/constant.test:
4077 * tests/errors.test:
4078 * tests/function.test:
4079 * tests/gobject.test:
4080 * tests/interface.test:
4081 * tests/invoke/Makefile.am:
4082 * tests/invoke/testfns.xml:
4083 * tests/object.test:
4084 * tests/parser/Makefile.am:
4085 * tests/roundtrips.sh:
4086 * tests/struct.test:
4091 * tools/Makefile.am:
4092 * tools/compiler.c (main):
4093 * tools/generate.c (write_callable_info), (write_function_info),
4095 * tools/gidlmodule.c:
4096 * tools/gidlmodule.h:
4099 * tools/gidlparser.c:
4100 * tools/gidlparser.h:
4101 * tools/gidlwriter.c:
4102 * tools/gidlwriter.h:
4103 * tools/scanner.c (create_node_from_gtype),
4104 (create_node_from_ctype), (g_igenerator_process_properties),
4105 (g_igenerator_process_signals), (g_igenerator_create_object),
4106 (g_igenerator_create_interface), (g_igenerator_create_boxed),
4107 (g_igenerator_create_enum), (g_igenerator_create_flags),
4108 (g_igenerator_process_function_symbol),
4109 (g_igenerator_process_unregistered_struct_typedef),
4110 (g_igenerator_process_struct_typedef),
4111 (g_igenerator_process_union_typedef),
4112 (g_igenerator_process_enum_typedef),
4113 (g_igenerator_process_function_typedef),
4114 (g_igenerator_process_constant), (g_igenerator_process_symbols),
4115 (g_igenerator_add_module), (g_igenerator_add_include_idl):
4116 Merge in the gir-compiler branch.
4117 Thanks to Philip and Colin for their help.
4119 2008-07-26 Colin Walters <walters@verbum.org>
4121 * tools/Makefile.am (bin_PROGRAMS): Install g-idl-compiler
4122 and g-idl-generate to go along with how we're changing this
4123 module to be installed.
4124 * gobject-introspection-1.0.pc.in: Set up Cflags and Libs.
4126 2008-07-24 Colin Walters <walters@verbum.org>
4128 * girepository/girepository.c (g_irepository_register): Add
4129 environment variable G_IREPOSITORY_VERBOSE so we can print
4130 out what we're doing.
4131 * girepository/girepository.c (g_irepository_register_file):
4132 Add GError error message to g_debug call.
4134 2008-07-08 Jürg Billeter <j@bitron.ch>
4136 * giscanner/glibast.py:
4140 2008-06-21 Johan Dahlin <jdahlin@async.com.br>
4142 * giscanner/girparser.py (GIRParser._parse_api): Ignore a few
4145 2008-06-20 Johan Dahlin <jdahlin@async.com.br>
4148 * giscanner/girwriter.py:
4149 * giscanner/transformer.py:
4150 * tests/parser/Foo-expected.gir:
4151 * tests/parser/foo-object.h:
4152 * tests/parser/foo.c (foo_object_allow_none):
4153 Add support for gtk-doc annotations for allow-none.
4156 2008-06-19 Johan Dahlin <jdahlin@async.com.br>
4159 * giscanner/girwriter.py:
4160 * giscanner/glibast.py:
4161 * giscanner/glibtransformer.py:
4162 * giscanner/transformer.py:
4163 * tests/parser/Foo-expected.gir:
4164 Start using abstract type instead of the raw C types.
4165 Register a bunch of glib types we care about.
4167 2008-06-19 Rob Taylor <rob.taylor@codethink.co.uk>
4172 2008-06-08 Philip Van Hoof <pvanhoof@gnome.org>
4174 * girepository/girepository.c:
4175 * girepository/gtypelib.c:
4176 * girepository/ginfo.c:
4177 * girepository/ginvoke.c:
4178 * girepository/girepository.h:
4179 * girepository/gtypelib.h:
4180 * girepository/gmetadata.c:
4181 * girepository/Makefile.am:
4182 * girepository/gmetadata.h:
4184 * tools/gidlmodule.c:
4187 * tools/gidlmodule.h:
4188 * tools/gidlparser.c:
4190 Renamed GMetadata to GTypelib
4192 2008-06-07 Johan Dahlin <jdahlin@async.com.br>
4194 * giscanner/xmlwriter.py:
4195 Improve line wrapping when > 79 charaters
4197 2008-06-05 Jürg Billeter <j@bitron.ch>
4200 * giscanner/girwriter.py:
4201 * giscanner/transformer.py:
4202 Use <type> element for field types
4203 * tests/parser/Foo-expected.gir:
4206 2008-06-04 Johan Dahlin <jdahlin@async.com.br>
4208 * giscanner/glibtransformer.py:
4209 Fix a bug which prevented GdkEvent from being generated
4211 2008-06-03 Johan Dahlin <jdahlin@async.com.br>
4213 * giscanner/Makefile.am:
4215 * giscanner/girwriter.py:
4216 * giscanner/glibast.py:
4217 * giscanner/glibtransformer.py:
4218 * giscanner/transformer.py:
4219 * giscanner/utils.py:
4220 * tests/parser/Foo-expected.gir:
4221 Improve enum member parsing and introspection
4223 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
4225 * giscanner/scannerparser.y:
4226 * giscanner/sourcescanner.h:
4227 * giscanner/sourcescanner.py:
4228 Add a new source type enum for member.
4229 Use __repr__ for improved debugging
4230 * giscanner/girparser.py:
4232 * giscanner/transformer.py:
4233 Improve parsing of struct members.
4234 * tests/parser/foo-object.h:
4237 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
4239 * giscanner/xmlwriter.py:
4240 Improve error reporting when trying to quote None.
4241 * giscanner/girparser.py:
4242 Do not print warnings when including more complete .gir files
4243 * giscanner/girwriter.py:
4244 Do not require a name for parameters, add a todo for singletons
4245 * giscanner/glibtransformer.py:
4246 Refactor the way structs are done, add a couple of hacks to allow
4248 * giscanner/transformer.py:
4249 Add enough hacks so cairo, atk and pango.gir can be parsed properly
4250 * gobject-introspection-1.0.pc.in:
4251 Export girdir, so we can access gobject-2.0.gir from outside
4253 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
4255 * tools/g-ir-scanner:
4256 * tests/parser/Makefile.am:
4257 Update sys.path before running the parser so we don't have
4258 to setup PYTHONPATH ourselves.
4262 * girepository/Makefile.am:
4263 * giscanner/transformer.py:
4264 * gobject-introspection-1.0.pc.in:
4265 * gobject-introspection.pc.in:
4266 * tools/Makefile.am:
4268 Rename pkg-config name to gobject-introspection-1.0,
4269 Do not installed anything which is not using the gir format.
4270 Disable compililation the old C scanner, but still keep the source
4271 until all the remaning functionallity has been ported.
4273 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
4275 * giscanner/giscannermodule.c (symbol_get_ident): Prevent
4276 a crash when symbol->indent is NULL.
4278 * giscanner/sourcescanner.py (ctype_name): Add ctype_name,
4279 a function to convert a CTYPE symbol to a string
4281 2008-05-24 Johan Dahlin <jdahlin@async.com.br>
4284 * giscanner/girwriter.py:
4285 * giscanner/giscannermodule.c
4286 (pygi_source_scanner_append_filename),
4287 (pygi_source_scanner_parse_file):
4288 * giscanner/glibtransformer.py:
4289 * giscanner/sourcescanner.py:
4290 Revert back to using temporary files to send in headers.
4291 Allow Functions to be passed in as callbacks, add a couple
4292 of try/excepts missing features.
4293 We can now scan pango
4295 2008-05-08 Johan Dahlin <johan@gnome.org>
4297 * giscanner/glibtransformer.py:
4298 * giscanner/transformer.py:
4299 Move namespace stripping glibtransformer->transformer
4301 2008-05-08 Johan Dahlin <johan@gnome.org>
4304 * giscanner/girwriter.py:
4305 * giscanner/glibtransformer.py:
4306 * giscanner/transformer.py:
4307 * tools/g-ir-scanner:
4308 Introduce a namespace ast node
4310 2008-05-05 Johan Dahlin <johan@gnome.org>
4312 * giscanner/__init__.py:
4313 * giscanner/sourcescanner.py:
4314 * giscanner/transformer.py:
4315 Move sourcescanner symbols to the sourcescanner module, instead
4316 of in the global __init__ namespace.
4318 2008-05-03 Johan Dahlin <johan@gnome.org>
4320 * giscanner/glibtransformer.py:
4321 * tools/g-ir-scanner:
4322 Handle missing parameters better, allow - and + in .la dlname
4325 2008-05-03 Johan Dahlin <johan@gnome.org>
4327 * giscanner/__init__.py:
4329 * giscanner/girwriter.py:
4330 * giscanner/glibtransformer.py:
4331 * giscanner/transformer.py:
4332 Parse struct fields properly, improve debugging.
4334 2008-04-29 Johan Dahlin <johan@gnome.org>
4337 * giscanner/girwriter.py:
4338 * giscanner/transformer.py:
4339 * tests/parser/Foo-expected.gir:
4341 Use transfer-ownership everywhere, to mark ownership/calle/caller etc.
4343 2008-04-29 Johan Dahlin <jdahlin@async.com.br>
4346 * docs/g-ir-scanner.1:
4347 * metadata-annotations-proposal.txt:
4348 * metadata-format.txt:
4349 Add a basic, unfinshed man page for g-ir-scanner, move documents into .txt
4351 2008-04-29 Johan Dahlin <jdahlin@async.com.br>
4353 * giscanner/girwriter.py:
4354 * giscanner/glibtransformer.py:
4355 * giscanner/transformer.py:
4356 * giscanner/xmlwriter.py:
4357 * tests/parser/Foo-expected.gir:
4358 * tests/parser/foo-object.h:
4359 Write record/structs to gir file too. Add a couple of tests,
4360 fix an off by one error in xmlwriter.py.
4362 2008-04-28 Johan Dahlin <johan@gnome.org>
4364 * giscanner/xmlwriter.py: Calculate the line length properly,
4365 include the provided extra indentation in the calculation, really.
4367 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
4370 * giscanner/glibast.py:
4371 * giscanner/glibtransformer.py:
4372 * giscanner/transformer.py:
4373 * tools/g-ir-scanner:
4374 Add a --strip-prefix and sort out confusion between names and symbols
4375 for functions and struct + derivaties.
4376 Refactor bootstrap of g-ir-scanner, so we can set options on
4377 Transformer() before parsing everything.
4379 2008-04-28 Johan Dahlin <johan@gnome.org>
4381 * giscanner/transformer.py (Transformer._traverse_one): Avoid recursion
4382 when scanning girepository.h
4384 * giscanner/sourcescanner.py (SourceScanner._preprocess): Define
4385 a __GI_SCANNER__ when we run.
4387 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
4390 * giscanner/girwriter.py:
4391 * giscanner/glibast.py:
4392 * giscanner/glibtransformer.py:
4393 * tests/parser/Foo-expected.gir:
4394 * tests/parser/utility-expected.gir:
4395 Rename most c:identifier to c:type. Add new ones to
4396 class/interface/enum/boxed.
4398 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
4401 * giscanner/girwriter.py:
4402 * giscanner/glibtransformer.py:
4403 * tests/parser/Foo-expected.gidl:
4404 * tests/parser/Makefile.am:
4405 Move c:identifier from return-value to subchild type,
4406 as per Jürgs suggestion
4408 2008-04-28 Johan Dahlin <johan@gnome.org>
4410 * giscanner/girwriter.py:
4411 * tests/parser/Foo-expected.gir:
4412 Write property.type as a child node.
4414 2008-04-27 Johan Dahlin <johan@gnome.org>
4419 * gidl/gobject-2.0.gidl:
4421 * gir/gobject-2.0.gir:
4422 * tests/parser/Makefile.am:
4423 Replace the GObject gidl with a GObject gir.
4425 2008-04-27 Johan Dahlin <johan@gnome.org>
4427 * tools/Makefile.am (bin_SCRIPTS): g-ir-scanner is a script,
4430 * giscanner/xmlwriter.py:
4431 * tests/parser/Foo-expected.gir:
4432 Include indentation in line length calculation
4434 2008-04-27 Johan Dahlin <johan@gnome.org>
4436 * giscanner/girparser.py:
4437 Prettify NS parsing using elementtree.
4439 2008-04-27 Johan Dahlin <johan@gnome.org>
4442 * giscanner/Makefile.am:
4443 * giscanner/girparser.py:
4444 * giscanner/glibtransformer.py:
4445 * tests/parser/Foo-expected.gidl:
4446 * tests/parser/Foo-expected.gir:
4447 * tests/parser/Makefile.am:
4448 * tests/parser/utility-expected.gidl:
4449 * tests/parser/utility-expected.gir:
4450 * tools/g-ir-scanner:
4451 Switch over to GIR as the default format. Add a simple GIDL
4453 Update tests and fix simplify makefiles by depending
4454 on GNU make extensions.
4456 2008-04-27 Johan Dahlin <johan@gnome.org>
4458 * giscanner/xmlwriter.py:
4459 Wrap attributes for lines which are wider than 79 characters
4461 * giscanner/scannerlexer.l:
4462 Allow parenthesis in annotations
4465 * giscanner/gidlwriter.py:
4466 * giscanner/girwriter.py:
4467 * giscanner/glibtransformer.py:
4468 * giscanner/transformer.py:
4469 Add initial sequence support, including annotation.
4470 Refactor type handling a bit.
4472 2008-04-27 Johan Dahlin <johan@gnome.org>
4474 * tests/parser/Foo-expected.gidl:
4475 * tests/parser/foo-object.h:
4476 * tests/parser/foo.c (foo_object_class_init),
4477 (foo_object_get_strings), (foo_object_get_objects):
4478 Add two new functions to check sequence return values.
4479 Also fixes a compilation warning.
4481 2008-04-27 Johan Dahlin <johan@gnome.org>
4483 * giscanner/giscannermodule.c (]): Cast the getter, avoids
4484 a compilation warning.
4486 * tools/Makefile.am (g_ir_scanner_SOURCES):
4487 g-ir-scanner has no sources.
4489 2008-04-25 Johan Dahlin <johan@gnome.org>
4491 * giscanner/Makefile.am:
4493 * giscanner/gidlparser.py:
4494 * giscanner/gidlwriter.py:
4495 * giscanner/girwriter.py:
4496 * giscanner/glibast.py:
4497 * giscanner/glibtransformer.py:
4498 * giscanner/transformer.py:
4499 Split out nodes to ast.py and glibast.py
4501 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
4503 * giscanner/Makefile.am:
4504 * giscanner/gidlparser.py:
4505 * giscanner/gidlwriter.py:
4506 * giscanner/girwriter.py:
4507 * giscanner/glibtransformer.py:
4508 * giscanner/gobjecttreebuilder.py:
4509 * giscanner/transformer.py:
4510 * giscanner/treebuilder.py:
4511 * tools/g-ir-scanner:
4512 Rename treebuilder to transformer and
4513 gobjectreebuilder to glibtransformer.
4515 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
4517 * giscanner/Makefile.am:
4518 * giscanner/__init__.py:
4519 * giscanner/cgobject.py:
4520 * giscanner/gidlparser.py:
4521 * giscanner/gidlwriter.py:
4522 * giscanner/girwriter.py:
4523 * giscanner/gobjecttreebuilder.py:
4524 * giscanner/odict.py:
4525 * giscanner/sourcescanner.py:
4526 * giscanner/treebuilder.py:
4527 * giscanner/xmlwriter.py:
4528 * tools/Makefile.am:
4529 * tools/g-ir-scanner:
4530 Add LGPLv2 license header and install all python files
4532 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
4535 * giscanner/gidlwriter.py:
4536 * giscanner/giscannermodule.c (pygi_source_directive_new),
4537 (directive_get_options), (pygi_source_symbol_new),
4538 (symbol_get_base_type), (pygi_source_type_new),
4539 (type_get_base_type), (type_get_child_list),
4540 (pygi_source_scanner_get_symbols),
4541 (pygi_source_scanner_get_directives):
4542 * giscanner/gobjecttreebuilder.py:
4543 * giscanner/sourcescanner.py:
4544 * giscanner/treebuilder.py:
4545 * tests/parser/foo-object.h:
4546 Add support for virtual methods.
4547 Pair struct FooClass with struct Foo.
4548 Clean up the SourceScanner bindings a bit.
4549 Add a testcase for virtual methods.
4551 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
4553 * giscanner/cgobject.py:
4554 * giscanner/gidlwriter.py:
4555 * giscanner/gobjecttreebuilder.py:
4556 Add support for signals
4558 * tests/parser/foo.c (foo_object_class_init):
4559 * Foo-expected.gidl:
4560 Add a signal and update the expected output.
4562 2008-04-24 Johan Dahlin <jdahlin@async.com.br>
4564 * giscanner/gidlwriter.py:
4565 * giscanner/girwriter.py:
4566 * giscanner/giscannermodule.c (directive_get_name),
4567 (directive_get_value), (directive_get_options),
4568 (symbol_get_directives), (symbol_set_directives),
4569 (pygi_source_scanner_parse_file),
4570 (pygi_source_scanner_lex_filename),
4571 (pygi_source_scanner_get_directives), (init_giscanner):
4572 * giscanner/sourcescanner.c (gi_source_scanner_get_directives):
4573 * giscanner/sourcescanner.h:
4574 * giscanner/sourcescanner.py:
4575 * giscanner/treebuilder.py:
4576 * tools/g-ir-scanner:
4577 Add support for source/header annotations.
4579 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
4581 * giscanner/gidlwriter.py:
4582 * giscanner/girwriter.py:
4583 * giscanner/gobjecttreebuilder.py:
4584 * giscanner/treebuilder.py:
4585 Add support for Callbacks
4587 2008-04-22 Havoc Pennington <hp@pobox.com>
4589 * girepository/ginvoke.c (g_function_info_invoke): If a symbol is
4590 not in metadata->module, look for it in the global module, in case
4591 some other object or the app itself provides the symbol.
4593 2008-04-22 Havoc Pennington <hp@pobox.com>
4595 * girepository/gmetadata.c (_g_metadata_init): hack to avoid
4596 dlopening a library that is already in the main app, by checking
4597 whether one of the lib's symbols is already loaded.
4599 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
4601 * tests/parser/Foo-expected.gidl:
4602 * tests/parser/foo-object.h:
4605 2008-04-22 Havoc Pennington <hp@pobox.com>
4607 * girepository/ginfo.c (g_interface_info_find_method):
4608 Use interface_blob_size not object_blob_size to compute offset.
4610 2008-04-22 Havoc Pennington <hp@pobox.com>
4612 * girepository/gmetadata.c (_g_metadata_init): remove
4613 G_MODULE_BIND_LOCAL flag when loading libraries, since some libs
4614 (Glade and Clutter for example) rely on being loaded globally.
4616 2008-04-22 Havoc Pennington <hp@pobox.com>
4618 * girepository/ginfo.c (g_registered_type_info_get_g_type): new
4619 function to get the GType given a RegisteredTypeInfo
4621 2008-04-22 Johan Dahlin <johan@gnome.org>
4623 * COPYING: Add a LGPL license, to prevent automake to
4624 put in a copy of GPL here. Pointed out by Havoc.
4626 * girepository/ginfo.c (g_info_from_entry), (g_type_info_new),
4627 (g_type_info_is_pointer), (g_type_info_get_tag),
4628 (g_type_info_get_param_type), (g_type_info_get_interface),
4629 (g_type_info_get_array_length), (g_type_info_is_zero_terminated),
4630 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
4631 (g_error_domain_info_get_codes), (g_enum_info_get_value),
4632 (g_object_info_get_interface), (g_object_info_get_field),
4633 (g_interface_info_get_prerequisite),
4634 (g_signal_info_get_class_closure), (g_constant_info_get_value):
4635 * girepository/ginvoke.c (get_ffi_type):
4636 * girepository/girepository.h:
4637 * girepository/gmetadata.c (g_metadata_get_dir_entry),
4638 (g_metadata_check_sanity), (validate_header),
4639 (validate_array_type_blob), (validate_iface_type_blob),
4640 (validate_param_type_blob), (validate_error_type_blob),
4641 (validate_type_blob), (validate_constant_blob),
4642 (validate_struct_blob), (validate_enum_blob):
4643 * girepository/gmetadata.h:
4644 * tests/Makefile.am:
4645 * tests/invoke/Makefile.am:
4646 * tests/invoke/invoke.c (main):
4647 * tests/roundtrips.sh:
4648 * tools/Makefile.am:
4649 * tools/compiler.c (format_output), (write_out_metadata), (main):
4650 * tools/generate.c (write_type_name), (write_type_info),
4651 (write_constant_value), (write_enum_info), (load_metadata), (main):
4652 * tools/gidlcompilercontext.c:
4653 * tools/gidlcompilercontext.h:
4654 * tools/gidlcompilerentrynode.c:
4655 * tools/gidlcompilerentrynode.h:
4656 * tools/gidlcompilertypenode.c:
4657 * tools/gidlcompilertypenode.h:
4658 * tools/gidlmodule.c (g_idl_module_build_metadata):
4659 * tools/gidlmodule.h:
4660 * tools/gidlnode.c (init_stats), (dump_stats),
4661 (g_idl_node_get_size), (g_idl_node_get_full_size),
4662 (g_idl_node_cmp), (g_idl_node_can_have_member),
4663 (g_idl_node_add_member), (g_idl_node_param_direction_string),
4664 (parse_int_value), (parse_uint_value), (parse_float_value),
4665 (parse_boolean_value), (find_entry_node), (find_entry),
4666 (serialize_type), (g_idl_node_build_metadata), (write_string):
4668 * tools/gidlparser.c (parse_type_internal):
4669 * tools/quote-file.sh:
4670 Revert revisions 157,149-148,136-129 and 120.
4671 Move back to using g-idl-generate to generate the metadata and
4672 avoids dependency on a c compiler.
4674 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
4676 * giscanner/girwriter.py:
4677 * tools/g-ir-scanner:
4678 Add an initial GIR writer and a --format option to g-ir-scanner
4680 2008-04-21 Johan Dahlin <johan@gnome.org>
4682 * giscanner/cgobject.py: Use ctypes.util.find_library to locate
4683 gobject-2.0 and raise ImportError if not found.
4685 * giscanner/gidlparser.py:
4686 * giscanner/gidlwriter.py:
4687 * giscanner/gobjecttreebuilder.py:
4688 * tools/g-ir-scanner:
4689 Add a --include argument to include types from other idls.
4690 Add a minimalistic GIDL parser (just objects for now)
4691 Implement resolving of external type references and use it to
4692 resolve parent types, argument types and return types.
4694 2008-04-21 Johan Dahlin <johan@gnome.org>
4696 * giscanner/gidlwriter.py:
4697 * giscanner/gobjecttreebuilder.py:
4698 * giscanner/treebuilder.py:
4699 Add support for properties.
4700 Refactor Class/Interface support a bit, to share more code and
4701 always initialize their method attribute to an empty list.
4703 2008-04-21 Johan Dahlin <johan@gnome.org>
4705 * giscanner/cgobject.py:
4706 Add a workaround for a glib bug interface introspection bug
4707 (object_interface_list_properties, object_class_list_properties):
4708 Cast the return value to GParamSpec.
4710 * tests/parser/Foo-expected.gidl: Update
4711 * tests/parser/foo.c: Add a string property
4713 * giscanner/gobjecttreebuilder.py:
4714 After stripping namespaces, remove the original
4715 item to avoid duplication (GtkButton struct and Button object)
4717 2008-04-21 Johan Dahlin <johan@gnome.org>
4719 * giscanner/gobjecttreebuilder.py:
4720 * giscanner/treebuilder.py:
4721 Strip namespaces before objects, so we'll export
4722 GtkButton as Button in the gtk namespace
4724 2008-04-21 Johan Dahlin <johan@gnome.org>
4726 * giscanner/gidlwriter.py:
4727 * giscanner/gobjecttreebuilder.py:
4728 * giscanner/treebuilder.py:
4729 Add constructors for object/boxed types.
4731 2008-04-21 Johan Dahlin <johan@gnome.org>
4733 * giscanner/gidlwriter.py:
4734 * giscanner/gobjecttreebuilder.py:
4735 Add support for boxed types
4737 2008-04-21 Johan Dahlin <johan@gnome.org>
4739 * giscanner/giscannermodule.c: Mark structures as const,
4740 wrap SourceType.const_string.
4742 * tests/parser/foo-object.h: Add a couple of constants.
4744 * giscanner/gidlwriter.py:
4745 * giscanner/gobjecttreebuilder.py:
4746 * giscanner/treebuilder.py:
4747 Add basic support for interfaces
4749 * tools/g-ir-scanner:
4750 Add -o/--output for writing to a file
4752 2008-04-21 Havoc Pennington <hp@redhat.com>
4754 * TODO: add some C API wishlist items I could think of quickly
4756 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
4758 * giscanner/gidlwriter.py:
4759 * giscanner/xmlwriter.py:
4760 Add a simple api for writing tags which can be used
4761 with the new 'with statement' in python 2.5
4763 2008-04-21 Johan Dahlin <johan@gnome.org>
4765 * giscanner/gobjecttreebuilder.py:
4766 Strip namespace and object prefix from method names.
4768 2008-04-21 Johan Dahlin <johan@gnome.org>
4770 * tools/g-ir-scanner (main): Add --pkg option to pass in
4771 pkg-config modules to get cflags from.
4773 * giscanner/gidlwriter.py (GIDLWriter._write_method):
4774 Avoid duplication, reuse function writer for methods.
4776 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
4778 * giscanner/gidlwriter.py:
4779 * giscanner/gobjecttreebuilder.py:
4780 * giscanner/treebuilder.py:
4781 * tools/g-ir-scanner:
4782 Resolve libtool .la files.
4783 Strip name spaces for methods.
4784 Add function symbols
4786 2008-04-20 Johan Dahlin <jdahlin@async.com.br>
4788 * giscanner/cgobject.py:
4789 * giscanner/gidlwriter.py:
4790 * giscanner/gobjecttreebuilder.py:
4791 * giscanner/treebuilder.py:
4792 Add support for classes and methods
4794 2008-04-20 Johan Dahlin <johan@gnome.org>
4796 * giscanner/gidlwriter.py:
4797 * giscanner/gobjecttreebuilder.py:
4798 * giscanner/odict.py:
4799 Avoid conflicts, keep the output ordered similar to
4800 the order of the input.
4801 Add a simple ordered dictionary implemenation
4803 2008-04-19 Johan Dahlin <johan@gnome.org>
4805 * giscanner/cgobject.py:
4806 * giscanner/gidlwriter.py:
4807 * giscanner/gobjecttreebuilder.py:
4808 * tools/g-ir-scanner:
4809 Start introspecting get-type functions.
4810 Implement support for GLib/GFlags GTypes.
4811 Add a ctype based GObject binding.
4813 2008-04-18 Johan Dahlin <jdahlin@async.com.br>
4815 * giscanner/gidlwriter.py:
4816 * giscanner/xmlwriter.py:
4817 * tools/g-ir-scanner:
4818 Add a simplistic gidl writer, which can't do too much.
4820 2008-04-18 Johan Dahlin <johan@gnome.org>
4822 * giscanner/sourcescanner.py:
4823 * giscanner/treebuilder.py:
4824 * tools/g-ir-scanner:
4825 split tree building and source scanning interface to separate files.
4827 2008-04-18 Johan Dahlin <johan@gnome.org>
4829 * tools/g-ir-scanner (Parameter.__init__): Start constructing
4831 - Add support for struct/parameter/return, start parsing of ctypes
4833 * giscanner/giscannermodule.c: wrap GISourceType.child_list and
4836 2008-03-31 Johan Dahlin <johan@gnome.org>
4838 * tools/g-ir-scanner:
4839 Start to build abstract syntax node of scanned sources.
4840 Add support for cpp options.
4842 2008-03-27 Johan Dahlin <johan@gnome.org>
4844 * giscanner/giscannermodule.c:
4845 * giscanner/scannerlexer.l:
4846 * giscanner/sourcescanner.c:
4847 * tools/g-ir-scanner:
4849 Add simple pre-processor using subprocess and a PIPE.
4850 Change the parse_file apis to accept a file descriptor.
4852 2008-03-25 Johan Dahlin <johan@gnome.org>
4854 * giscanner/__init__.py:
4855 * tools/g-ir-scanner:
4856 Fix a typo and add an example python test program.
4858 2008-03-25 Johan Dahlin <johan@gnome.org>
4860 * giscanner/__init__.py:
4861 * giscanner/giscannermodule.c:
4862 * giscanner/sourcescanner.c:
4863 * giscanner/sourcescanner.h:
4864 Add constants and wrap a few more SymbolType fields
4866 2008-03-25 Johan Dahlin <johan@gnome.org>
4870 * giscanner/__init__.py:
4871 * giscanner/giscannermodule.c:
4872 * giscanner/Makefile.am:
4874 Add initial python bindings for the scanner and
4875 depend on python 2.5.
4877 2008-03-25 Johan Dahlin <johan@gnome.org>
4881 * giscanner/Makefile.am:
4882 * giscanner/sourcescanner.c:
4883 * giscanner/sourcescanner.h:
4884 * tools/Makefile.am:
4885 * tools/grealpath.h:
4886 * tools/sourcescanner.c:
4887 * tools/sourcescanner.h:
4889 Move the scanner to a separate library.
4891 2008-03-23 Johan Dahlin <johan@gnome.org>
4893 * tools/Makefile.am:
4896 * tools/scannerlexer.l:
4897 * tools/scannerparser.y:
4898 * tools/sourcescanner.c:
4899 * tools/sourcescanner.h:
4900 Split out the source scanner from the generator.
4901 Rename the symbols used in the scanner to use the gi_ prefix.
4902 This should make it possible to use the raw C parser from
4905 2008-03-23 Johan Dahlin <johan@gnome.org>
4907 * tests/parser/Makefile.am (utility.gidl):
4908 * tests/parser/utility-expected.gidl:
4909 Pass in the gobject.gidl since we're defining a GObject.
4911 2008-03-12 Johan Dahlin <johan@gnome.org>
4913 * relaxng/relaxng.rng:
4914 Add a releaxng in relaxng we can use to validate the relaxngs
4917 2008-03-12 Jürg Billeter <j@bitron.ch>
4919 * tools/scanner.c: (g_igenerator_new):
4920 * tools/scannerparser.y:
4921 Fix compiler warnings.
4923 2008-03-12 Jürg Billeter <j@bitron.ch>
4927 * tools/scannerparser.y:
4928 Start fixing memory management in g-idl-scanner.
4930 2008-03-12 Rob Taylor <rob.taylor@codethink.co.uk>
4932 * tools/gidlcompilercontext.c: (write_compiled):
4933 Fix critical warning when no shlib passed to g-idl-compiler.
4935 2008-03-12 Johan Dahlin <johan@gnome.org>
4937 * tests/parser/utility-expected.gidl:
4938 * tests/parser/utility.h:
4939 Add a get_type-function, so the scanner actually
4940 parses it as an object.
4942 2008-03-12 Johan Dahlin <johan@gnome.org>
4944 * tools/gidlwriter.c (function_generate): Add missing trailing quote.
4947 * tests/parser/Foo-expected.gidl:
4948 * tests/parser/Makefile.am:
4949 * tests/parser/foo-object.h:
4950 * tests/parser/foo.c:
4951 * tests/parser/utility-expected.gidl:
4952 * tests/parser/utility.c:
4953 * tests/parser/utility.h:
4955 Add a new gidl test. 'utility.gidl', which is used to be able
4956 to test external type references. Add a reference to UtilityObject*
4959 2008-03-11 Johan Dahlin <johan@gnome.org>
4963 Remove most global variables
4965 2008-03-11 Philip Van Hoof <me@pvanhoof.be>
4967 * tools/scannerlexer.l:
4969 * tests/parser/Foo-expected.gidl:
4970 * tests/parser/foo.c:
4971 * tests/parser/Makefile.am:
4972 * tests/parser/foo-object.h:
4974 Added a few extra tests. Which resulted in finding a few
4975 bugs. Which resulted in me fixing those bugs
4977 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
4979 * tools/gidlcompilercontext.c: (g_idl_compiler_write_dir_entry),
4980 (g_idl_compiler_write_xref_entry), (g_idl_compiler_add_xref):
4981 Add some comments for strings into generated output for
4984 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
4986 * tools/gidlcompilercontext.c: (write_compiled):
4987 Write out the shlibs variable before writing out the strings
4988 length. Fixes compiler warning when using '-l' flag with
4991 2008-03-11 Johan Dahlin <johan@gnome.org>
4993 * tests/parser/Foo-expected.gidl:
4994 * tests/parser/foo-object.h:
4997 * tools/scannerlexer.l:
4998 Add support for parsing return arguments. Add support for
4999 caller-owns return types.
5000 Patch by Philip Van Hoof.
5002 * tools/scannerparser.y:
5003 Remove parsing of the @deprecated syntax used in headers.
5004 We will support gtk-doc deprecation in the future instead.
5006 2008-03-11 Johan Dahlin <johan@gnome.org>
5008 * tools/compiler.c (main): Coding style fixes
5010 2008-03-10 Johan Dahlin <johan@gnome.org>
5013 Add GCOV_LIBS to GILIBS
5015 2008-03-10 Johan Dahlin <johan@gnome.org>
5017 * tests/parser/Foo-expected.gidl:
5018 * tests/parser/foo.c:
5019 Rename null-ok to direction=out
5021 2008-03-10 Philip Van Hoof <me@pvanhoof.be>
5023 reviewed and extensively tested by Johan
5025 * tests/parser/Foo-expected.gidl:
5026 * tests/parser/foo-object.h:
5027 * tests/parser/foo.c:
5030 * tools/gidlwriter.c:
5033 * tools/scannerlexer.l:
5034 * tools/scannerparser.y:
5036 Add support for scanning for gtk-doc comments inside
5037 C source files. Add tests
5039 2008-03-10 Johan Dahlin <johan@gnome.org>
5041 * tests/parser/Makefile.am:
5042 * tests/parser/foo.c:
5045 * tools/scannerparser.y:
5046 Add an api to lex filenames.
5047 Lex all source .c files passed in on the command line.
5048 Scan sources in a test and a couple of private structures
5049 which should not be included in the generated gidl
5051 2008-03-10 Johan Dahlin <johan@gnome.org>
5053 * tests/invoke/Makefile.am: Make the generated metadata
5054 depend on the g-idl-compiler
5056 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
5058 * tools/gidlmodule.c
5059 * tools/gidlmodule.h
5062 Remove the old g-idl-compiler code.
5065 2008-02-22 Mark Doffman <mark.doffman@codethink.co.uk>
5067 * tools/quote-file.sh
5070 Move to using the 'C' struct compiler code.
5072 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
5074 * girepository/ginfo.c
5076 Change the way that external references with no namespace
5077 are dealt with. External references with no namespace
5078 are placed into the XML as-if they are a local reference.
5079 This is temporary, but helps with roundtrip tests.
5081 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
5083 * girepository/ginfo.c
5084 Add the ability to get the value of a constant of
5085 type TYPE_TAG_SYMBOL. In the case of a symbol the value
5086 is provided as a string.
5088 This would deal properly with:
5089 typedef char* random;
5090 const random = "A string";
5092 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
5094 * girepository/ginfo.c
5095 * girepository/girepository.h
5097 Add a function to check if an enum is registered or not.
5098 Previously anything testing this relied on the g-type
5099 string offset having a value of 0.
5101 * girepository/gmetadata.c
5102 * girepository/gmetadata.h
5104 Remove unneccesary or erroneous checks. There were two
5105 metadata validation checks which made sure that the blob
5106 sizes were the same as some magic numbers compiled into the code.
5107 This is wrong as it breaks any forwards compatibility that may
5110 Checks were also present that made sure that unregistered type
5111 blobs had a value of 0 in the g-type offset field. This is
5112 unneccessary. If a type blob is unregistered then any value
5113 in its g-type field is simply invalid.
5115 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
5117 * girepository/ginfo.c
5118 * girepository/gmetadata.c
5119 * girepository/gmetadata.h
5121 Change the metadata format to have a standard header
5122 for all the type blobs. Merge the SimpleTypeBlob
5123 and InterfaceTypeBlob into a union. A union of these
5124 two blobs existed previously but was not explicit
5125 in the metadata format.
5127 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
5129 * tools/gidlcompilercontext.c
5130 * tools/gidlcompilercontext.h
5131 * tools/gidlcompilerentrynode.c
5132 * tools/gidlcompilerentrynode.h
5133 * tools/gidlcompilertypenode.c
5134 * tools/gidlcompilertypenode.h
5136 Add code to compile a tree of GIdlNodes to
5137 a 'C' struct representing the metadata.
5138 This is to aid cross-compiling. Previously
5139 the g-idl-compiler created a binary blob with
5140 data written in the byte order and alignment
5141 of the tool rather than the intended target.
5143 Cleaned up and improved by Johan and Robert :-)
5145 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
5147 * girepository/ginvoke.c
5148 * girepository/girepository.h
5149 * girepository/gmetadata.c
5150 * girepository/gmetadata.h
5152 * tools/gidlparser.c
5153 Modify TYPE_TAG_INTERFACE to TYPE_TAG_SYMBOL
5154 to avoid confusion with the interface blob.
5157 * tools/gidlparser.c
5158 Remove magic numbers and replace with type-tag
5159 enumeration symbols.
5161 * girepository/gmetadata.c
5162 Add validate declaration.
5164 2008-03-10 Jürg Billeter <j@bitron.ch>
5166 * tools/gidlparser.c: (parse_type_internal):
5167 * tools/scannerlexer.l:
5168 * tools/scannerparser.y:
5169 Support C99 _Bool type in scanner.
5171 2008-03-10 Jürg Billeter <j@bitron.ch>
5173 * tests/parser/Foo-expected.gidl:
5174 * tests/parser/foo-object.h:
5175 * tests/parser/foo.c: (foo_enum_method):
5176 * tools/scanner.c: (g_igenerator_process_function_symbol):
5177 Don't skip functions that are defined in the namespace of a type
5178 that doesn't support methods, as for example enums.
5180 2008-03-10 Johan Dahlin <johan@gnome.org>
5182 * gidl.dtd: Remove, we're using relaxng for now
5184 * tests/parser/Foo-expected.gidl:
5185 * tests/parser/foo-object.h:
5186 * tests/parser/foo.c:
5187 Rename the enum/flags get_type functions to include the whole type.
5189 2008-03-08 Marc-Andre Lureau <marcandre.lureau@gmail.com>
5191 * tools/gidlwriter.c (enum_generate): added "type-name",
5192 "get-type" and "deprecated" missing arguments.
5193 * tests/parser/Foo-expected.gidl:
5194 * tests/parser/foo-object.h: test enum type, and no type.
5196 2008-03-06 Johan Dahlin <jdahlin@async.com.br>
5199 Consistent checks, add missing 'test'
5201 2008-03-05 Havoc Pennington <hp@redhat.com>
5203 * configure.ac: Take advantage of a libffi.pc if one exists, as it
5204 does on Fedora 8. Make libffi a hard requirement, since it was in
5205 practice anyway (was not really conditional in the code or
5206 makefile, only in configure).
5208 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
5210 reviewed by: Rob Taylor <rob.taylor@codethink.co.uk>
5211 reviewed by: Johan Dahlin <johan@gnome.org>
5213 * tests/Makefile.am:
5214 * tests/roundtrips.sh:
5215 Modify the roundtrips test so that they do not use the
5216 --raw option of the gidl compiler but instead compile a
5217 shared library to use with g_module.
5219 * tests/invoke/Makefile.am:
5220 * tests/invoke/invoke.c:
5221 Modify the invoke tests to build a shared library rather
5222 than use the --raw option.
5224 * tests/invoke/invoke-namespace-find.sh: Removed:
5225 Noone knows why this was here, so removed.
5227 2008-02-19 Rob Taylor <rob.taylor@codethink.co.uk>
5229 * tools/scanner.c: (g_igenerator_process_function_symbol):
5230 Move g_idl_node_can_have_member test later, as it broke spotting
5231 get_type's for nodes that can't have members.
5233 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
5236 * tools/gidlnode.c: (g_idl_node_can_have_member):
5237 Add g_idl_node_can_have_member.
5239 * tools/scanner.c: (g_igenerator_process_function_symbol):
5240 Use g_idl_node_can_have_member to test if we should add a function
5241 as a member of the type node.
5243 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
5245 * gidl/GLib.gidl: Renamed to gidl/gobject-2.0.gidl:
5247 * tests/parser/Makefile.am:
5248 Rename GLib.gidl to gobject-2.0.gidl and install in /usr/share/gidl.
5250 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
5252 * tools/scanner.c: (main):
5253 Ignore -pthread when passed to g-idl-scanner.
5255 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
5257 * tools/grealpath.h: Added:
5258 * tools/scanner.c: (main):
5259 * tools/scannerlexer.l:
5260 * tools/Makefile.am:
5261 Always use absolute paths with symbolic links resolved when
5262 comparing filenames.
5264 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
5266 * gobject-introspection.pc.in:
5267 Provide variables for g-idl-parser, scanner and compiler in the
5270 2008-02-13 Rob Taylor <rob.taylor@codethink.co.uk>
5273 * girepository/Makefile.am:
5274 * tools/Makefile.am:
5275 Rename GCOV_SOURCES to GCOVSOURCES to top automake complaining.
5277 2008-02-10 Johan Dahlin <johan@gnome.org>
5279 * tests/parser/Foo-expected.gidl:
5280 * tests/parser/foo-object.h:
5281 * tests/parser/foo.c: (foo_boxed_copy), (foo_boxed_free),
5282 (foo_boxed_get_type), (foo_boxed_new), (foo_boxed_method):
5285 2008-02-10 Johan Dahlin <johan@gnome.org>
5287 * tests/parser/Foo-expected.gidl:
5288 * tests/parser/foo-object.h:
5289 * tests/parser/foo.c: (foo_enum_get_type), (foo_flags_get_type):
5290 Add enum and flags test.
5292 2008-02-10 Johan Dahlin <johan@gnome.org>
5296 * girepository/Makefile.am:
5297 Make 'make distcheck' work again.
5299 2008-02-10 Johan Dahlin <johan@gnome.org>
5301 * m4/Makefile.am (EXTRA_DIST): its called as-compiler-flag.m4,
5304 * tests/parser/Makefile.am: Only create Foo.gidl when running make
5305 check, eg exclude it from BUILT_SOURCES.
5307 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
5312 * girepository/Makefile.am:
5313 * m4/Makefile.am: Added:
5314 * m4/as-compiler-flag.m4: Added:
5315 * m4/gcov.m4: Added:
5316 * tools/Makefile.am:
5317 Add ability to generate a coverage report.
5318 Adds configure option --enable-gcov and make rule 'check-coverage'.
5320 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
5324 * gidl/Makefile.am: Added:
5325 * girepository/Makefile.am: Added:
5326 * src/Makefile.am: Renamed to tools/Makefile.am:
5327 * src/compiler.c: Renamed to tools/compiler.c:
5328 * src/g-idl-offsets.pl: Renamed to tools/g-idl-offsets.pl:
5329 * src/generate.c: Renamed to tools/generate.c:
5330 * src/gidlmodule.c: Renamed to tools/gidlmodule.c:
5331 * src/gidlmodule.h: Renamed to tools/gidlmodule.h:
5332 * src/gidlnode.c: Renamed to tools/gidlnode.c:
5333 * src/gidlnode.h: Renamed to tools/gidlnode.h:
5334 * src/gidlparser.c: Renamed to tools/gidlparser.c:
5335 * src/gidlparser.h: Renamed to tools/gidlparser.h:
5336 * src/gidlwriter.c: Renamed to tools/gidlwriter.c:
5337 * src/gidlwriter.h: Renamed to tools/gidlwriter.h:
5338 * src/ginfo.c: Renamed to girepository/ginfo.c:
5339 * src/ginvoke.c: Renamed to girepository/ginvoke.c:
5340 * src/girepository.c: Renamed to girepository/girepository.c:
5341 * src/girepository.h: Renamed to girepository/girepository.h:
5342 * src/gmetadata.c: Renamed to girepository/gmetadata.c:
5343 * src/gmetadata.h: Renamed to girepository/gmetadata.h:
5344 * src/scanner.c: Renamed to tools/scanner.c:
5345 * src/scanner.h: Renamed to tools/scanner.h:
5346 * src/scannerlexer.l: Renamed to tools/scannerlexer.l:
5347 * src/scannerparser.y: Renamed to tools/scannerparser.y:
5348 * tests/invoke/Makefile.am:
5349 Split src/ into girepository/ and tools/
5353 * girepository/Makefile.am:
5354 * tests/Makefile.am:
5355 * tests/invoke/Makefile.am:
5356 * tests/parser/Makefile.am:
5357 * tests/roundtrips.sh:
5358 * tools/Makefile.am:
5359 Make distcheck work.
5361 2008-02-04 Rob Taylor <rob.taylor@codethink.co.uk>
5363 * tests/invoke/invoke.c: (main):
5364 * tests/invoke/testfns.c: (test6), (test7):
5365 * tests/invoke/testfns.xml:
5366 Add tests for invokation with a GList argument.
5367 Also tests caller-owns return values.
5369 2008-02-04 Rob Taylor <robtaylor@floopily.org>
5372 Add some documentation for GICallableInfo
5374 2008-02-01 Mark Doffman <mark.doffman@codethink.co.uk>
5377 Correct syntax errors in the DTD file.
5379 * relaxng/c-types.xml:
5380 * relaxng/g-types.xml:
5382 Add a RelaxNG specification for the GObject Introspection XML data.
5383 The Specification has validated all of the test files.
5385 2008-01-25 Rob Taylor <robtaylor@floopily.org>
5387 * tests/roundtrips.sh:
5388 * tests/struct.test:
5389 Add roundtrip tests for structs.
5391 2008-01-11 Johan Dahlin <johan@gnome.org>
5393 * src/scanner.c (g_igenerator_process_function_symbol):
5394 Refactor out g_idle_node_add_member.
5395 (create_node_from_gtype, create_node_from_ctype):
5396 Use case instead of if...else
5397 (get_type_from_type_id):
5398 Rename to create_node_from_gtype
5399 (get_type_from_ctype):
5400 Rename to create_node_from_ctype
5402 Rename ginode -> node, gitype -> type, gifunc -> func.
5404 * src/gidlnode.c (g_idl_node_add_member, g_idl_node_cmp):
5405 Two new functions, refactor out of scanner.c
5407 * src/scanner.c: (g_igenerator_process_function_symbol):
5408 * src/scannerlexer.l:
5409 Do not save the content of the deprecated variable, only
5412 2008-01-11 Johan Dahlin <johan@gnome.org>
5414 * tests/parser/foo-object.h: Add a couple of comment parser tests.
5416 2008-01-11 Jürg Billeter <j@bitron.ch>
5418 * src/scannerlexer.l:
5419 Fix GTK-Doc parsing.
5421 2008-01-11 Jürg Billeter <j@bitron.ch>
5423 * src/scannerlexer.l:
5424 Fix GTK-Doc parsing.
5426 2008-01-11 Jürg Billeter <j@bitron.ch>
5428 * src/scanner.c: (lookup_symbol):
5429 Return unresolved name if we find unknown symbol.
5431 2008-01-11 Jürg Billeter <j@bitron.ch>
5433 * src/scanner.c: (g_igenerator_generate):
5434 Initialize GObject to fix scanning interface properties.
5436 * tests/parser/Foo-expected.gidl:
5437 * tests/parser/foo-object.h:
5438 * tests/parser/foo.c: (foo_interface_get_type):
5439 Test interfaces with GObject prerequisite.
5441 * tests/parser/Makefile.am:
5442 Set G_DEBUG=fatal_warnings to abort test on warnings and criticals.
5444 2007-12-27 Johan Dahlin <johan@gnome.org>
5446 * src/scannerlexer.l:
5447 Parse gtk-doc comments.
5449 * src/gidlwriter.c: (function_generate):
5450 Reorganize, avoid duplication and add support for
5451 writing deprecated functions.
5453 * src/scannerparser.y:
5455 Add new structure CDirective and functions to create/free them.
5457 * src/scanner.c: (g_igenerator_process_function_symbol),
5458 (g_igenerator_process_unregistered_struct_typedef),
5459 (g_igenerator_process_struct_typedef),
5460 (g_igenerator_process_union_typedef),
5461 (g_igenerator_process_enum_typedef),
5462 (g_igenerator_process_function_typedef), (g_igenerator_add_symbol),
5463 (g_igenerator_start_preprocessor):
5464 Parse @deprecated directive for functions.
5465 Remove some more C99isms.
5466 Send in -C to cpp to avoid stripping comments.
5468 * tests/parser/foo-object.h:
5469 * tests/parser/Foo-expected.gidl:
5470 Add deprecated directive
5472 2007-12-27 Johan Dahlin <johan@gnome.org>
5474 * src/scannerlexer.l (intsuffix): Add emacs mode line and
5475 escape ' and " so it looks more like C.
5478 Unlink temporary file used.
5480 2007-12-27 Johan Dahlin <johan@gnome.org>
5482 * src/scanner.c: (g_igenerator_new), (g_igenerator_free),
5483 (g_igenerator_start_preprocessor), (main):
5485 * src/scannerparser.y:
5486 Plug a couple of simple memory leaks.
5488 2007-12-27 Johan Dahlin <johan@gnome.org>
5490 * src/scanner.c: (g_igenerator_parse_macros),
5491 (g_igenerator_start_preprocessor), (g_igenerator_set_verbose),
5494 * src/scannerparser.y:
5495 * tests/parser/Makefile.am:
5497 Improve error reporting, return when the preprocessor fails.
5498 Add a verbose parameter, to aid debugging.
5499 Revert to using a temporary file to communicate between the
5500 preprocessor and the parser, because we need to wait for
5501 the exit code from the pre-processor before starting to parse.
5503 2007-12-16 Johan Dahlin <jdahlin@async.com.br>
5505 * src/Makefile.am: Rename clexer.l to scannerlexer.l and
5506 cparser.y to scannerparser.y
5508 2007-12-11 Johan Dahlin <johan@gnome.org>
5512 * src/scanner.c: (g_igenerator_new):
5514 Get rid of the global the_generator variable.
5516 2007-12-10 Johan Dahlin <johan@gnome.org>
5518 * src/scanner.c (main): Add an output option,
5519 add checks for required parameters
5522 set BUILD_SOURCES and CLEANFILES properly
5524 * src/gidlwriter.c: (g_writer_write_inline), (g_writer_write),
5525 (g_writer_write_indent), (g_writer_write_unindent),
5526 (field_generate), (value_generate), (constant_generate),
5527 (property_generate), (function_generate), (vfunc_generate),
5528 (signal_generate), (interface_generate), (struct_generate),
5529 (union_generate), (boxed_generate), (enum_generate),
5530 (node_generate), (g_writer_write_module), (g_idl_writer_save_file):
5532 * src/scanner.c: (g_igenerator_generate):
5534 * src/scannerwriter.c:
5536 Refactor scannerwriter to only be tied to a GIdlModule and move
5537 it (again!) to gidlwriter.c. Change the writer function to take
5540 2007-12-10 Johan Dahlin <johan@gnome.org>
5543 * src/scanner.c: (g_igenerator_generate):
5545 * src/scannerwriter.c: (g_igenerator_write_inline),
5546 (g_igenerator_write), (g_igenerator_write_indent),
5547 (g_igenerator_write_unindent), (field_generate), (value_generate),
5548 (constant_generate), (property_generate), (function_generate),
5549 (vfunc_generate), (signal_generate), (interface_generate),
5550 (struct_generate), (union_generate), (boxed_generate),
5551 (enum_generate), (node_generate), (module_generate),
5552 (g_scanner_write_file):
5554 Move the scanner gidl writing to a separate source file.
5556 2007-12-10 Johan Dahlin <johan@gnome.org>
5561 Move over all CType construction functions.
5563 * tests/parser/Makefile.am:
5564 Be verbose when printing parsing tests results.
5566 2007-12-10 Johan Dahlin <johan@gnome.org>
5568 * src/scanner.c (g_igenerator_start_preprocessor): Refactor
5569 preprocessor handling to here. Start cpp insteado of cc -E,
5570 always include -U__GNUC__, since it's specific to the preprocessor
5573 * tests/parser/Makefile.am (check-local): Silent diff and skip
5574 -U__GNUC__ which is always defined now
5576 2007-12-10 Johan Dahlin,,, <jdahlin@plasttroll>
5578 reviewed by: <delete if not using a buddy>
5580 * src/scanner.c: (g_igenerator_start_preprocessor), (main):
5581 * tests/parser/Makefile.am:
5583 2007-12-09 Johan Dahlin <johan@gnome.org>
5586 Use GOption for command line options.
5587 (g_igenerator_new, main): Simplify constructor and they way
5588 parameters are passed into it.
5594 * src/gen-introspect.c:
5595 * src/gen-introspect.h:
5597 Rename gen-introspect.[ch] to scanner.[ch]
5599 2007-12-09 Johan Dahlin <johan@gnome.org>
5603 * src/Makefile.am: Rename gen-introspect to g-idl-scanner,
5604 don't make the repository library and the other utilites link against
5607 * src/gen-introspect.c: (g_igenerator_create_object),
5608 (g_igenerator_create_interface), (g_igenerator_create_boxed),
5609 (g_igenerator_create_enum), (g_igenerator_create_flags),
5610 (g_igenerator_process_module_symbol),
5611 (g_igenerator_process_module), (g_igenerator_generate), (main):
5612 * src/gen-introspect.h:
5613 Refactor g_igenerator_process_types into smaller pieces.
5615 * tests/parser/Makefile.am:
5616 Depend on the gen-introspect binary
5618 2007-12-09 Johan Dahlin <johan@gnome.org>
5620 * src/gen-introspect.c (g_igenerator_process_types):
5621 Break into smaller pieces, one for each generated node type.
5623 2007-12-08 Johan Dahlin <johan@gnome.org>
5625 * src/gen-introspect.c: (g_igenerator_process_types),
5626 (g_igenerator_add_module):
5627 * tests/parser/Foo-expected.gidl:
5628 * tests/parser/foo-object.h:
5629 * tests/parser/foo.c: (foo_subobject_class_init),
5630 (foo_subobject_init):
5632 Add a subobject test and make sure to register defined classes
5633 in the lookup symbol hash table.
5635 2007-12-08 Johan Dahlin <johan@gnome.org>
5639 * src/gen-introspect.c: (g_igenerator_new), (lookup_symbol),
5640 (g_igenerator_process_types), (g_igenerator_add_module),
5641 (g_igenerator_add_include_idl), (main):
5642 * src/gen-introspect.h:
5643 * tests/parser/Makefile.am:
5644 * tests/parser/Foo-expected.gidl:
5646 Change the gen-introspect to generate namespaced module names,
5647 such as GLib.Object instead of GObject.
5648 Add a GLib.gidl which introduces GLib.Object and GLib.InitiallyUnowned,
5649 add a --include-idl parameter to gen-introspect,
5650 and update the parser test.
5652 2007-12-08 Johan Dahlin <johan@gnome.org>
5654 * src/gen-introspect.c:
5655 Move main to the end of the file and attempt to make it valid
5658 * tests/parser/Makefile.am (BUILT_SOURCES): Remove .repo here,
5659 we're not quite ready to generate metadata yet.
5664 Add a simple gen-introspect parser test
5666 2007-12-06 Gustavo J. A. M. Carneiro <gjc@gnome.org>
5668 reviewed by: Johan Dahlin <johan@gnome.org>
5671 * gobject-introspection.pc.in:
5673 * src/compiler.c: (format_output), (write_out_metadata), (main):
5674 * src/gen-introspect.c: (main):
5675 * src/gen-introspect.h:
5676 * src/generate.c: (write_callable_info), (write_repository),
5677 (load_metadata), (main):
5678 * src/gidlmodule.c: (g_idl_module_new),
5679 (g_idl_module_build_metadata):
5681 * src/gidlparser.c: (start_element_handler):
5682 * src/ginfo.c: (g_info_new), (g_info_from_entry),
5683 (g_base_info_get_name), (g_base_info_get_namespace),
5684 (g_base_info_is_deprecated), (g_base_info_get_annotation),
5685 (g_base_info_get_metadata), (g_function_info_get_symbol),
5686 (g_function_info_get_flags), (g_function_info_get_property),
5687 (g_function_info_get_vfunc), (signature_offset), (g_type_info_new),
5688 (g_callable_info_may_return_null),
5689 (g_callable_info_get_caller_owns), (g_callable_info_get_n_args),
5690 (g_callable_info_get_arg), (g_arg_info_get_direction),
5691 (g_arg_info_is_return_value), (g_arg_info_is_dipper),
5692 (g_arg_info_is_optional), (g_arg_info_may_be_null),
5693 (g_arg_info_get_ownership_transfer), (g_type_info_is_pointer),
5694 (g_type_info_get_tag), (g_type_info_get_param_type),
5695 (g_type_info_get_interface), (g_type_info_get_array_length),
5696 (g_type_info_is_zero_terminated),
5697 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
5698 (g_error_domain_info_get_quark), (g_error_domain_info_get_codes),
5699 (g_value_info_get_value), (g_field_info_get_flags),
5700 (g_field_info_get_size), (g_field_info_get_offset),
5701 (g_registered_type_info_get_type_name),
5702 (g_registered_type_info_get_type_init),
5703 (g_struct_info_get_n_fields), (g_struct_info_get_field),
5704 (g_struct_info_get_n_methods), (g_struct_info_get_method),
5705 (find_method), (g_struct_info_find_method),
5706 (g_enum_info_get_n_values), (g_enum_info_get_value),
5707 (g_object_info_get_parent), (g_object_info_get_type_name),
5708 (g_object_info_get_type_init), (g_object_info_get_n_interfaces),
5709 (g_object_info_get_interface), (g_object_info_get_n_fields),
5710 (g_object_info_get_field), (g_object_info_get_n_properties),
5711 (g_object_info_get_property), (g_object_info_get_n_methods),
5712 (g_object_info_get_method), (g_object_info_find_method),
5713 (g_object_info_get_n_signals), (g_object_info_get_signal),
5714 (g_object_info_get_n_vfuncs), (g_object_info_get_vfunc),
5715 (g_object_info_get_n_constants), (g_object_info_get_constant),
5716 (g_interface_info_get_n_prerequisites),
5717 (g_interface_info_get_prerequisite),
5718 (g_interface_info_get_n_properties),
5719 (g_interface_info_get_property), (g_interface_info_get_n_methods),
5720 (g_interface_info_get_method), (g_interface_info_find_method),
5721 (g_interface_info_get_n_signals), (g_interface_info_get_signal),
5722 (g_interface_info_get_n_vfuncs), (g_interface_info_get_vfunc),
5723 (g_interface_info_get_n_constants),
5724 (g_interface_info_get_constant), (g_property_info_get_flags),
5725 (g_signal_info_get_flags), (g_signal_info_get_class_closure),
5726 (g_signal_info_true_stops_emit), (g_vfunc_info_get_flags),
5727 (g_vfunc_info_get_offset), (g_vfunc_info_get_signal),
5728 (g_constant_info_get_value), (g_union_info_get_n_fields),
5729 (g_union_info_get_field), (g_union_info_get_n_methods),
5730 (g_union_info_get_method), (g_union_info_is_discriminated),
5731 (g_union_info_get_discriminator_offset),
5732 (g_union_info_get_discriminator):
5733 * src/ginvoke.c: (g_function_info_invoke):
5734 * src/girepository.c: (g_irepository_register),
5735 (g_irepository_unregister), (g_irepository_get_default),
5736 (count_interfaces), (g_irepository_get_n_infos), (find_interface),
5737 (g_irepository_get_info), (g_irepository_find_by_name),
5738 (g_irepository_get_shared_library),
5739 (g_irepository_build_search_path), (g_irepository_register_file),
5740 (g_irepository_error_quark):
5741 * src/girepository.h:
5742 * src/gmetadata.c: (g_metadata_get_dir_entry),
5743 (g_metadata_check_sanity), (validate_header),
5744 (validate_array_type_blob), (validate_iface_type_blob),
5745 (validate_param_type_blob), (validate_error_type_blob),
5746 (validate_type_blob), (validate_arg_blob),
5747 (validate_signature_blob), (validate_function_blob),
5748 (validate_callback_blob), (validate_constant_blob),
5749 (validate_value_blob), (validate_field_blob),
5750 (validate_property_blob), (validate_signal_blob),
5751 (validate_vfunc_blob), (validate_struct_blob),
5752 (validate_enum_blob), (validate_object_blob),
5753 (validate_interface_blob), (validate_errordomain_blob),
5754 (validate_union_blob), (validate_blob), (validate_directory),
5755 (validate_annotations), (g_metadata_validate), (_g_metadata_init),
5756 (g_metadata_new_from_memory), (g_metadata_new_from_const_memory),
5757 (g_metadata_new_from_mapped_file), (g_metadata_free),
5758 (g_metadata_set_module), (g_metadata_get_namespace):
5760 * tests/Makefile.am:
5761 * tests/invoke/Makefile.am:
5762 * tests/invoke/invoke-namespace-find.sh:
5763 * tests/invoke/invoke.c: (main):
5765 Add a namespace/shared library mapping. fixes #313268.
5767 2007-12-03 Johan Dahlin <johan@gnome.org>
5769 * src/gidlparser.c (parse_type_internal): Disable char/gchar and
5772 2007-11-30 Jürg Billeter <j@bitron.ch>
5778 * src/gen-introspect.c: (g_idl_node_cmp), (g_igenerator_new),
5779 (g_igenerator_write_inline), (g_igenerator_write),
5780 (g_igenerator_write_indent), (g_igenerator_write_unindent),
5781 (field_generate), (value_generate), (constant_generate),
5782 (property_generate), (function_generate), (vfunc_generate),
5783 (signal_generate), (interface_generate), (struct_generate),
5784 (union_generate), (boxed_generate), (enum_generate),
5785 (node_generate), (module_generate), (get_type_from_type_id),
5786 (str_replace), (g_igenerator_process_properties),
5787 (g_igenerator_process_signals), (g_igenerator_process_types),
5788 (get_type_from_ctype), (g_igenerator_process_function_symbol),
5789 (g_igenerator_process_unregistered_struct_typedef),
5790 (g_igenerator_process_struct_typedef),
5791 (g_igenerator_process_union_typedef),
5792 (g_igenerator_process_enum_typedef),
5793 (g_igenerator_process_function_typedef),
5794 (g_igenerator_process_constant), (g_igenerator_process_symbols),
5795 (g_igenerator_add_symbol), (g_igenerator_is_typedef),
5796 (g_igenerator_generate), (main), (csymbol_new),
5797 (csymbol_get_const_boolean), (ctype_new), (ctype_copy),
5798 (cbasic_type_new), (ctypedef_new), (cstruct_new), (cunion_new),
5799 (cenum_new), (cpointer_new), (carray_new), (cfunction_new),
5800 (eat_hspace), (eat_line), (read_identifier),
5801 (g_igenerator_parse_macros):
5802 * src/gen-introspect.h:
5804 Import gen-introspect to generate introspection information by
5807 2007-11-30 Jürg Billeter <j@bitron.ch>
5809 * src/gidlnode.c: (g_idl_node_new): support creating callback nodes
5811 2007-11-30 Jürg Billeter <j@bitron.ch>
5813 * src/gidlparser.c: (end_element_handler): Don't leave requires
5816 2007-11-29 Johan Dahlin <johan@gnome.org>
5818 * src/gidlparser.c (parse_type_internal): Add char,
5819 gchar and guchar to the builtin types.
5821 2007-11-26 Johan Dahlin <johan@gnome.org>
5823 * src/ginfo.c: (g_object_info_get_type_name),
5824 (g_object_info_get_type_init):
5825 * src/girepository.c: (g_irepository_is_registered):
5826 * src/girepository.h:
5828 Add g_object_info_get_type_name, g_object_info_get_type_init and
5829 g_irepository_is_registered.
5831 2006-08-14 Jürg Billeter <j@bitron.ch>
5833 * src/gidlparser.c: (end_element_handler): Don't leave
5834 namespace and implements states too early.
5837 2007-11-26 Johan Dahlin <johan@gnome.org>
5839 * src/gmetadata.c (validate_struct_blob):
5840 pass blob_type to validate_function_blob instead of
5841 hard-coding BLOB_TYPE_STRUCT.
5843 Patch by Torsten Schoenfeld, fixes #314190
5845 2006-10-03 Torsten Schoenfeld <tsch@cvs.gnome.org>
5847 * src/compiler.c, src/generate.c, src/gidlnode.c,
5848 src/gidlparser.c, src/ginfo.c, src/girepository.c,
5849 tests/invoke/invoke.c, test/invoke/testfns.c: Hush compiler
5850 warnings about return values, signedness mismatches, unused
5851 variables, and unhandles enum values in switch statements.
5853 * tests/invoke/Makefile.am: Don't install the invoke test program.
5854 Add -I ../../src to the cflags used for the test functions files.
5856 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
5858 * src/girepository.h: Export g_invoke_error_quark.
5860 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
5862 * src/ginvoke.c: Remove the fallback implementation of
5863 g_function_info_invoke since we now formally depend on libffi.
5865 2005-07-25 Matthias Clasen <mclasen@redhat.com>
5867 * src/Makefile, tests/Makefile, tests/invoke/Makefile:
5868 Remove these files from cvs, as they are now generated.
5870 * src/gmetadata.c (validate_iface_type_blob): Don't
5871 complain if blob->pointer is not set, since that
5872 happens for enum and flag types. (#308935, Gustavo
5875 * Commit an autoconf-conversion patch by
5876 Gustavo Carneiro (#308708)
5878 2005-05-24 Matthias Clasen <mclasen@redhat.com>
5880 * src/compiler.c (main): Use it here to validate
5881 the generated metadata.
5883 * src/gmetadata.[hc]: Add code to validate a
5886 * metadata-format.txt: Updates
5888 2005-05-22 Matthias Clasen <mclasen@redhat.com>
5890 * tests/*: Add struct offsets to field and vfunc
5893 * src/generate.c (write_vfunc_info): Write offset
5894 information for vfuncs.
5896 * src/gidlnode.c (g_idl_node_build_metadata): Write
5897 the struct offsets into the metadata.
5899 * src/gidlparser.c: Parse the offset attributes of
5900 field and vfunc elements.
5902 * src/gidlnode.h: Add offset members to field and
5905 2005-05-21 Matthias Clasen <mclasen@redhat.com>
5909 * gidl.dtd: Updates.
5911 * src/g-idl-offsets.pl: A perl script which reads a .gidl
5912 file, creates, compiles and runs a C file, and folds the
5913 resulting struct offsets back into the .gidl file.
5915 2005-05-20 Matthias Clasen <mclasen@redhat.com>
5917 * src/gidlparser.c (start_field): Make fields in objects
5920 * src/gidlmodule.c: Include string.h
5925 * metadata-format.txt: Cleanup basic types.
5926 * src/*: Adapt to the changes.
5927 * tests/*: Adapt to the changes.
5928 * examples/gdk-pixbuf.gidl: Adapt to the changes.
5930 * src/gidlnode.c (g_idl_node_get_size): Report the correct
5931 size for enum blobs.
5932 (g_idl_node_get_full_size): Report the correct size for
5935 * src/gidlmodule.c (g_idl_module_build_metadata): Add some
5936 error checking for blob sizes.
5938 2005-05-19 Matthias Clasen <mclasen@redhat.com>
5940 * src/gidlnode.c (g_idl_node_build_metadata): Correctly handle
5941 interface types for which is_pointer is FALSE, e.g. enums.
5943 * src/gidlnode.c (g_idl_node_get_full_size)
5944 * src/gidlparser.c (parse_type_internal):
5945 * src/generate.c (write_type_info): Support unspecialized
5946 lists, hashtables and errors. Also emit a '*' after these.
5950 2005-05-17 Matthias Clasen <mclasen@redhat.com>
5954 * metadata-format.txt: Cleanups by Maciej Katafiasz.
5956 2005-05-15 Matthias Clasen <mclasen@redhat.com>
5958 * src/*.c: Change the directory to be addressed by
5959 1-based indexes, and use an index of zero to mean
5962 2005-05-15 Matthias Clasen <mclasen@redhat.com>
5964 * tests/roundtrips.sh (SIMPLE_TESTS): Add union.test.
5966 * tests/union.test: Add a union test.
5968 * src/generate.c: Handle unions.
5970 * src/girepository.h:
5971 * src/ginfo.c: Add GIUnionInfo and functions to access it.
5973 * src/gidlnode.c: Handle GIdlNodeUnion nodes.
5975 * src/gidlparser.c (start_union): Parse <union> elements.
5977 * src/gidlnode.h: Add a GIdlNodeUnion.
5979 * gidl.dtd: Add a <union> element.
5981 * src/gmetadata.c (g_metadata_check_sanity): Check
5984 * src/gmetadata.h: Add union_blob_size to Header,
5987 * metadata-format.txt: Add a UnionBlob.
5989 2005-05-13 Matthias Clasen <mclasen@redhat.com>
5991 * tests/*: Update testcases.
5993 * src/generate.c (write_callable_info): Don't forget to
5994 write transfer and null-ok attributes for return types
5997 * src/girepository.h:
5998 * src/ginfo.c (g_callable_info_may_return_null):
5999 New function to find out if a function may return NULL.
6001 * src/compiler.c (format_output): Make the generated
6004 * README: Point to a recent libffi snapshot.
6006 * tests/invoke/*: Some invoke tests.
6008 * src/Makefile: Add ginvoke.c and the necessary
6011 * src/girepository.h (g_function_info_invoke): Add
6014 * src/ginvoke.c (g_function_info_invoke): Initial
6015 implementation of invoke functionality based on libffi.
6017 * src/gidlnode.c (g_idl_node_build_metadata): Pass the
6018 strings and types hash tables in the right order when
6020 (find_entry_node): Free the name parts.
6022 2005-05-12 Johan Dahlin <johan@gnome.org>
6024 * src/generate.c: Generate consistent end tags.
6028 2005-05-12 Matthias Clasen <mclasen@redhat.com>
6032 * src/gidlparser.c (start_function): Actually add
6033 methods to objects. (Steven Walter)
6035 * src/girepository.h:
6036 * src/ginfo.c: Rename Transfer and Direction to
6037 GITransfer and GIDirection. (Torsten Schoenfeld)
6039 * tests/*: Make tests work with the changes in name
6042 * src/gidlnode.c (find_entry_node): Parse qualified
6043 names and generate xref nodes for them if needed. Don't
6044 require all modules to be loaded any more.
6046 * src/gidlmodule.c (g_idl_module_build_metadata): Choke
6049 * src/ginfo.c (g_object_info_get_parent): Return NULL
6050 if blob->parent is 0. Still need to make sure index
6053 * src/generate.c: Generate qualified names when
6054 referring to non-local types. Emit transfer attribute
6057 * src/compiler.c (format_output): Put the function
6058 attributes where gcc accepts them.
6060 2005-05-11 Matthias Clasen <mclasen@redhat.com>
6062 * src/compiler.c (main): Add a --verbose cmdline option
6063 and only log messages if it is specified.
6066 * src/gidlnode.c (init_stats, dump_stats): Collect some
6067 statistics on string and type sharing.
6069 * src/gidlmodule.c (g_idl_module_build_metadata): Use
6070 g_message() instead of fprintf().
6072 * src/gidlnode.c (g_idl_node_free): Make this more robust.
6073 (g_idl_node_get_size): Implement for structs.
6074 (g_idl_node_get_full_size): Handle parent being NULL.
6075 (serialize_type): Handle lookup failures more gracefully.
6077 2005-05-10 Matthias Clasen <mclasen@redhat.com>
6079 * src/gidlnode.c (g_idl_node_get_full_size): Correct the
6080 size calculation for 2-parameter types and for objects.
6082 * src/compiler.c: Add a cmdline option for debug output
6083 and install a log handler to implement it.
6084 * src/gidlnode.c: Add some debug spew.
6088 * src/gidlmodule.c (g_idl_module_build_metadata): Don't
6089 forget to count the module name when calculating the
6090 required size for the metadata.
6093 * src/gidlparser.c: Fix compiler warnings.
6095 2005-05-09 Matthias Clasen <mclasen@redhat.com>
6097 * src/compiler.c (main): Free the option context.
6099 * gidl.dtd: Clean up handling of names. All elements
6100 have a "name", only the elements corresponding to
6101 actual callable functions (function, method, constructor),
6102 have an additional "symbol" attribute holding the
6103 dlsym()-able function name.
6105 * src/generate.c: Adapt to generate xml matching the
6109 * src/gidlnode.c: Adapt to parse the new dtd.
6111 * tests/*.test: Adjust to the new dtd.
6113 * metadata-format.txt:
6114 * src/gmetadata.h: Remove the short_name field
6116 * src/gmetadata.c: Shrink size of ValueBlob to 12.
6117 * src/girepository.h:
6118 * src/ginfo.c (g_value_info_get_short_name): Removed
6120 2005-05-09 Matthias Clasen <mclasen@redhat.com>
6122 * gidl.dtd: Allow constructors for boxed types,
6123 patch by Jonathan Blandford.
6126 2005-05-09 Matthias Clasen <mclasen@redhat.com>
6128 * --- Initial import ---