1 2009-01-27 Johan Dahlin <jdahlin@async.com.br>
4 * gir/fontconfig-2.0.gir:
5 * gir/freetype2-2.0.gir:
10 Remove shared-library tags for these too.
12 2009-01-27 Johan Dahlin <jdahlin@async.com.br>
15 Remove shared-library which removes the build
16 time dependency on mesa.
18 2009-01-27 Dan Winship <danw@gnome.org>
22 * giscanner/scannerparser.y: Fix the "Ignoring non-UTF-8 constant
23 string" error to print the right value.
25 * tests/scanner/annotation.c (backslash_parsing_tester)
26 (backslash_parsing_tester_2): make these non-static to avoid a
28 (annotation_object_string_out)
29 (annotation_string_zero_terminated): fix return values
31 * tests/scanner/annotation.h (annotation_object_with_voidp):
34 * tests/scanner/gtkfrob.c:
35 * tests/scanner/gtkfrob.h (gtk_frob_language_manager_get_default):
36 fix prototype. (s/()/(void)/).
38 * tools/compiler.c (format_output): fix signed/unsigned warning.
39 Output a prototype for register_typelib() to avoid warnings later.
41 2009-01-26 Johan Dahlin <jdahlin@async.com.br>
43 * tests/everything/everything.c (test_callback):
44 * tests/everything/everything.h:
45 Add a couple of callback tests.
47 2009-01-26 Johan Dahlin <jdahlin@async.com.br>
49 * girepository/ginfo.c (g_base_info_unref):
50 Only unref the repository if it's actually set.
52 2009-01-23 Johan Dahlin <jdahlin@async.com.br>
54 * tests/everything/everything.c (test_enum_param):
55 * tests/everything/everything.h:
57 Add an enum param test function
59 2009-01-21 Johan Dahlin <jdahlin@async.com.br>
62 Post-release version bump
65 2009-01-21 Johan Dahlin <jdahlin@async.com.br>
69 2009-01-21 Johan Dahlin <jdahlin@async.com.br>
71 Bug 562622 – Errordomains missing
73 * giscanner/girwriter.py:
74 * giscanner/glibast.py:
75 * giscanner/glibtransformer.py:
76 * tests/scanner/Makefile.am:
77 * tests/scanner/foo-1.0-expected.gir:
78 * tests/scanner/foo-1.0-expected.tgir:
79 * tests/scanner/foo.c (foo_error_get_type), (foo_error_quark):
80 * tests/scanner/foo.h:
82 2009-01-20 Johan Dahlin <jdahlin@async.com.br>
84 * giscanner/scannerlexer.l:
85 Increase the buffer size to 1M, so
86 gtkalias.h can be parsed.
88 2009-01-20 Johan Dahlin <jdahlin@async.com.br>
90 * giscanner/glibtransformer.py:
91 When trying to map functions to structs, do
92 not require a public structure to exist, should
93 fix Gst gir generation in.
95 2009-01-20 Johan Dahlin <jdahlin@async.com.br>
97 Bug 562615 – Struct methods missing
99 * giscanner/annotationparser.py:
101 * giscanner/girwriter.py:
102 * giscanner/glibast.py:
103 * giscanner/glibtransformer.py:
104 * tests/scanner/foo-1.0-expected.gir:
105 * tests/scanner/foo-1.0-expected.tgir:
107 2009-01-16 Dan Winship <danw@gnome.org>
109 * gir/GL-1.0.gir: add back GLvoid, which got lost during the
110 gir-repository -> gobject-introspection migration
112 2009-01-15 Johan Dahlin <jdahlin@async.com.br>
114 * gir/freetype2-2.0.gir: add FT_Int32
115 * gir/xft-2.0.gir: add XftFont
116 * girepository/gdump.c (g_irepository_dump):
117 Report errors when an invalid type is encountered
118 * giscanner/glibtransformer.py:
119 Make the error message a bit nicer.
121 Part of preparating for gir generating inside pango.
123 2009-01-15 Johan Dahlin <jdahlin@async.com.br>
128 * gir/fontconfig-2.0.gir:
129 * gir/freetype2-2.0.gir:
130 * gir/libxml2-2.0.gir:
131 * gir/xfixes-4.0.gir:
135 Move over the hand-written girs from gir-repository
136 so upstream libraries depending on these can avoid
137 a gir-repository dependency.
139 2009-01-15 Johan Dahlin <jdahlin@async.com.br>
141 Bug 567813 – Everything should be versioned
144 * girepository/Makefile.am:
145 * girepository/girepository.c (init_globals):
146 * girepository/girparser.c (locate_gir):
147 * giscanner/dumper.py:
148 * giscanner/transformer.py:
149 * gobject-introspection-1.0.pc.in:
150 * tests/everything/Makefile.am:
151 * tests/invoke/Makefile.am:
152 * tests/offsets/Makefile.am:
153 * tests/repository/Makefile.am:
154 * tests/scanner/Makefile.am:
157 2009-01-13 Johan Dahlin <jdahlin@async.com.br>
159 Bug 555036 – put gtk-doc in GIR
161 * giscanner/annotationparser.py:
163 * giscanner/girwriter.py:
164 * giscanner/glibast.py:
165 * tests/scanner/annotation-1.0-expected.gir:
166 * tests/scanner/annotation.h:
167 * tests/scanner/foo-1.0-expected.gir:
169 2009-01-13 Johan Dahlin <jdahlin@async.com.br>
171 * giscanner/cachestore.py (CacheStore.load): Catch AttributeError
172 which seems to be occasionally raised for Record.
174 * giscanner/annotationparser.py:
175 Fix a bug where \n was not present in a comment
177 2009-01-12 Johan Dahlin <jdahlin@async.com.br>
179 Bug 562467 – Property annotation
181 * giscanner/annotationparser.py:
182 * tests/scanner/annotation-1.0-expected.gir:
183 * tests/scanner/annotation-1.0-expected.tgir:
184 * tests/scanner/annotation.c (annotation_object_set_property),
185 (annotation_object_get_property), (annotation_object_class_init):
187 Annotations are parsed for properties.
189 2009-01-12 Johan Dahlin <jdahlin@async.com.br>
191 Bug 546739 – Introspection should know precise signal parameter types
193 * giscanner/annotationparser.py:
194 * tests/scanner/annotation-1.0-expected.gir:
195 * tests/scanner/annotation-1.0-expected.tgir:
196 * tests/scanner/annotation.c (annotation_object_class_init):
198 Annotations are parsed for signals, the (type) annotation is introduced.
200 2009-01-12 Johan Dahlin <jdahlin@async.com.br>
202 Bug 563591 – Flags not recognized when there is no introspection data
205 * giscanner/girwriter.py:
206 * giscanner/giscannermodule.c (type_get_is_bitfield):
207 * giscanner/glibast.py:
208 * giscanner/glibtransformer.py:
209 * giscanner/scannerparser.y:
210 * giscanner/sourcescanner.c (gi_source_type_copy):
211 * giscanner/sourcescanner.h:
212 * giscanner/sourcescanner.py:
213 * giscanner/transformer.py:
214 * tests/scanner/foo-1.0-expected.gir:
215 * tests/scanner/foo-1.0-expected.tgir:
216 * tests/scanner/foo.h:
218 Large parts of this patch was done by Jürg Billeter.
220 2009-01-12 Havoc Pennington <hp@pobox.com>
222 Bug 563386 – scanner ignores "const" on boxed return values
224 * tests/everything/everything.c (test_simple_boxed_a_const_return):
225 * tests/everything/everything.h:
227 This adds just the tests specified in the bug above, the fix itself
228 was included in Bug 563794
230 2009-01-03 Andreas Rottmann <a.rottmann@gmx.at>
232 Bug 566404 – Annotations for GLib
234 * gir/glib-2.0.c: Added allow-none annotations for g_thread_init()
235 and g_main_loop_new().
237 2009-01-12 Johan Dahlin <jdahlin@async.com.br>
239 Bug 566419 – Element type of arrays not properly handled in all cases
241 * giscanner/annotationparser.py:
242 * tests/scanner/annotation-1.0-expected.gir:
243 * tests/scanner/annotation-1.0-expected.tgir:
244 * tests/scanner/annotation.c (annotation_object_set_data),
245 (annotation_object_set_data2), (annotation_object_set_data3):
246 * tests/scanner/annotation.h:
248 Based on patch by Andreas Rottmann
250 2009-01-12 Johan Dahlin <jdahlin@async.com.br>
252 Bug 566560 – giscanner.transformer.SkipError
254 * giscanner/transformer.py:
256 Catch SkipError for all nodes, not just functions.
257 Makes it possible to skip unsupported parameter types in
260 2009-01-12 Johan Dahlin <jdahlin@async.com.br>
262 Bug 563794 - Redo annotation parsing & applying
264 Thanks to Colin for helping out considerably in landing this.
266 * giscanner/Makefile.am:
268 * giscanner/dumper.py:
269 * giscanner/girparser.py:
270 * giscanner/giscannermodule.c (pygi_source_scanner_get_comments),
271 (calc_attrs_length), (pygi_collect_attributes), (init_giscanner):
272 * giscanner/glibtransformer.py:
273 * giscanner/scannerlexer.l:
274 * giscanner/sourcescanner.c (gi_source_symbol_unref),
275 (gi_source_scanner_new), (gi_source_scanner_free),
276 (gi_source_scanner_get_comments):
277 * giscanner/sourcescanner.h:
278 * giscanner/sourcescanner.py:
279 * giscanner/transformer.py:
280 * giscanner/xmlwriter.py:
281 * tests/scanner/annotation-1.0-expected.gir:
282 * tests/scanner/annotation-1.0-expected.tgir:
283 * tests/scanner/annotation.c:
284 * tests/scanner/annotation.h:
285 * tests/scanner/foo-1.0-expected.gir:
286 * tests/scanner/foo-1.0-expected.tgir:
287 * tests/scanner/foo.h:
288 * tools/g-ir-scanner:
290 This commit merges the annotation parser rewrite branch.
291 It'll change the annotation parsing to be done completely in python
292 code which will make it easier to do further annotation parsing
295 2009-01-03 Andreas Rottmann <a.rottmann@gmx.at>
297 Bug 563469 – Arrays not treated correctly in struct offset calculation
299 * tests/scanner/foo.h (FooObject): Added field `some_int'.
300 * tests/scanner/foo-1.0-expected.gir,
301 * tests/scanner/foo-1.0-expected.tgir: Adapted.
303 * giscanner/glibtransformer.py (GLibTransformer._create_gobject):
304 carry over object fields from original (struct) node.
305 (GLibTransformer._pair_class_struct): Don't add fields of the
306 class struct to to the node for the class, they should go under a
307 nested <record> element (see also Bug 551738). This is needed as
308 otherwise offset calculation would not work, as the instance
309 fields are mingled with the class fields without a way to
312 2009-01-03 Johan Dahlin <jdahlin@async.com.br>
315 Disable blank line check, it works differently under
316 Python 2.5 from 2.6 and was rather annoying from the start.
318 2008-01-03 Andreas Rottmann <a.rottmann@gmx.at>
320 Bug 556489 – callback annotations
322 * giscanner/transformer.py
324 * tools/generate.c (write_callable_info): Write out the new scope,
325 closure and destroy attributes.
327 * giscanner/transformer.py (Transformer._type_is_callback): New
328 method, checking if a given type is a callback.
329 (Transformer._augment_callback_params): New method; adds
330 information (closure, destroy) to callback parameters.
331 (Transformer._handle_closure, Transformer._handle_destroy): New methods,
332 auxiliary to _augment_callback_params.
333 (Transformer._create_function): Call _augment_callback_params().
334 (Transformer._create_parameter): Handle scope option.
336 (Transformer._create_typedef_callback): New method, creates a
337 callback, and registers it in the typedef namespace
338 (Transformer._create_typedef): Use _create_typedef_callback()
339 instead of the plain _create_callback().
341 * giscanner/ast.py (Parameter): Added callback-related fields.
342 * giscanner/girwriter.py: Write out new Parameter fields.
344 * girepository/girnode.h (GIrNodeParam): Added fields scope,
346 * girepository/gtypelib.h (ArgBlob): Ditto.
347 * girepository/girparser.c (start_parameter): Handle new fields.
349 * girepository/girmodule.c (g_ir_module_build_typelib): Adjust
350 arg_blob_size, bump major version due to this change.
351 * girepository/girnode.c (g_ir_node_get_full_size_internal)
352 (g_ir_node_build_typelib)
353 * girepository/gtypelib.c (g_typelib_check_sanity): ArgBlob size
355 (g_ir_node_build_typelib): Fill in new ArgBlob flags from param.
357 * girepository/girepository.h (GIScope): New enumeration, listing
358 the different possible scopes for callbacks.
360 * girepository/ginfo.c (g_arg_info_get_scope)
361 (g_arg_info_get_closure, g_arg_info_get_destroy): Accessors for
362 callback-related argument indices (callback scope, closure for a
363 callback, destroy notification for a callback).
365 * tests/scanner/: Added testcases for new features.
367 2009-01-03 Jürg Billeter <j@bitron.ch>
370 * giscanner/dumper.py:
371 * giscanner/girparser.py:
372 * giscanner/glibtransformer.py:
373 * giscanner/sourcescanner.py:
374 * giscanner/transformer.py:
375 * giscanner/xmlwriter.py:
377 Fix inconsistencies with PEP8
379 2008-12-21 Johan Dahlin <jdahlin@async.com.br>
382 Annotate transfer, direction and allow none for
383 g_file_load_contents, g_file_load_contents_finish and
384 g_file_load_partial_contents_finish parameters.
386 2008-12-12 Owen Taylor <otaylor@redhat.com>
388 Disable array auto-detection for out-annotated parameters (#563934)
390 If we have a parameter annotated as (out), then having a ctype of
391 'char **' (or similar) doesn't necessarily indicate an array.
393 * giscanner/transformer.py: Skip array-detection logic for
394 (out)-annotated parameters.
395 * tests/scanner/annotation.h tests/scanner/annotation.c
396 tests/scanner/annotation-1.0-expected.gir
397 tests/scanner/annotation-1.0-expected.tgir: Add a test for
398 an (out) string parameter.
400 2008-12-12 Johan Dahlin <jdahlin@async.com.br>
402 * giscanner/dumper.py (DumpCompiler._link): Pass in
403 --tag=CC to libtool to avoid making libtool confused
404 when CC is different from gcc on some systems.
406 2008-12-10 Johan Bilien <jobi@via.ecp.fr>
408 Bug 563998 – Cache the GIBaseInfo for GTypes
410 * girepository/girepository.c (g_irepository_find_by_gtype):
411 add a cache of GType -> GIBaseInfo.
413 2008-12-09 Johan Bilien <jobi@via.ecp.fr>
415 Bug 562545 – Add function taking / returning GValue
417 * tests/everything/everything.[ch]: add a test of function taking and
418 returning "const GValue *"
420 2008-12-09 Johan Dahlin <johan@async.com.br>
422 * giscanner/cachestore.py (CacheStore.store): Use
423 shutil.move instead of os.rename, since it will
424 automatically fall back to copying+remove if the
425 src directory is on a different partition from
428 2008-12-08 Tristan Van Berkom <tristan.van.berkom@gmail.com>
430 Bug 563742 – introspection should record the introduced version of
431 symbols marked with the "Since:" tag
436 * giscanner/girwriter.py:
437 * giscanner/scannerlexer.l:
438 * giscanner/transformer.py:
439 * tests/scanner/annotation-1.0-expected.gir:
440 * tests/scanner/annotation-1.0-expected.tgir:
441 * tests/scanner/annotation.c (annotation_versioned):
442 * tests/scanner/annotation.h:
444 2008-12-08 Johan Dahlin <johan@async.com.br>
446 * giscanner/cachestore.py (_get_cachedir): Don't require
447 HOME to be set and if it set, don't require the
450 2008-12-08 Johan Dahlin <johan@async.com.br>
452 * giscanner/cachestore.py (CacheStore.store): Dump the cache
453 file to a temporary file and rename it the expected filename
454 only when it's completely written.
455 This should make the cache more roboust when run in parallel,
456 and hopefully avoid triggering bugs in Python.
458 2008-12-03 Christophe Fergeau <teuf@gnome.org>
460 Bug 562971 – g-ir-scanner failure on libgpod headers
462 * giscanner/scannerlexer.l: raise YY_BUF_SIZE to 65536 up from the
463 default 16384. Without it, the lexer was aborting with a cryptic
464 error message on source files containing really long comment
467 2008-12-01 Colin Walters <walters@verbum.org>
469 * girepository/gfield.c: Fix memory leak; unref type info we
470 created, not field info
472 2008-11-30 Johan Dahlin <jdahlin@async.com.br>
474 Bug 562289 – Race when removing invalid cache
476 * giscanner/cachestore.py:
477 ENOENT is mapped to a OSError, not IOError.
479 2008-11-27 Johan Dahlin <jdahlin@async.com.br>
481 * gir/glib-2.0.c: Add return value transfer annotation
482 for g_markup_escape_text.
484 2008-11-25 Colin Walters <walters@verbum.org>
486 * tools/g-ir-scanner: Add --libtool option which we expect Automake-using
488 * giscanner/dumper.py: Implement it.
489 * gir/Makefile.am, tests/**/Makefile.am: Use it.
491 2008-11-25 Colin Walters <walters@verbum.org>
493 * tests/scanner/Makefile.am: Remove hand-rolled generation of .tgir; easier
494 to just use a Makefile rule and dependencies. This corresponds with a change
495 made to gir-repository to fix srcdir != builddir issues.
497 2008-11-25 Johan Dahlin <jdahlin@async.com.br>
500 Post release version bump
503 2008-11-25 Johan Dahlin <jdahlin@async.com.br>
508 2008-11-25 Colin Walters <walters@verbum.org>
510 Bug 559705 – Missing association between static methods and classes
512 * docs/typelib-format.txt:
513 * girepository/ginfo.c (g_function_info_get_flags):
514 * girepository/girmodule.c (g_ir_module_build_typelib):
515 * girepository/girnode.c (g_ir_node_get_size),
516 (g_ir_node_build_typelib):
517 * girepository/girparser.c (start_function):
518 * girepository/gtypelib.c (g_typelib_check_sanity),
519 (validate_header), (validate_function_blob):
520 * girepository/gtypelib.h:
522 * giscanner/girwriter.py:
523 * giscanner/glibtransformer.py:
524 * tests/scanner/foo-1.0-expected.gir:
525 * tests/scanner/foo-1.0-expected.tgir:
526 * tests/scanner/foo.h:
528 2008-11-25 Johan Dahlin <jdahlin@async.com.br>
530 * giscanner/ast.py: Define socklen_t as an alias for int32.
532 2008-11-24 Johan Dahlin <jdahlin@async.com.br>
534 * girepository/gdump.c (dump_type): Remove a warning,
535 be less verbose on error on fundamental types.
537 2008-11-23 Johan Dahlin <jdahlin@async.com.br>
539 * giscanner/dumper.py: Add license headers,
540 refactor into a class, avoid some duplication and do some
541 extra pedantic checks.
543 2008-11-23 Johan Dahlin <jdahlin@async.com.br>
545 Make it compilable with -Werror on my system by adding
546 a couple of prototypes and including headers.
548 2008-11-23 Johan Dahlin <jdahlin@async.com.br>
550 Bug 562022 – gobject-introspection needs python headers
552 * configure.ac: fail without python headers present.
555 2008-11-21 Johan Dahlin <jdahlin@async.com.br>
557 Bug 561617 – Return value array annotations
559 * giscanner/transformer.py:
560 * tests/scanner/annotation.c (annotation_return_array):
561 * tests/scanner/annotation.h:
562 Add support for (array) for return value annotations as well.
564 2008-11-20 Johan Bilien <jobi@via.ecp.fr>
566 * tests/everything/everything.[ch]: add a test function which calls a
569 2008-11-19 Johan Dahlin <jdahlin@async.com.br>
571 * giscanner/cachestore.py:
572 Catch ValueError exceptions.
574 2008-11-18 Tommi Komulainen <tommi.komulainen@iki.fi>
576 * tests/scanner/Makefile.am (barapp_SOURCES): fix builddir != srcdir
578 2008-11-18 Andreas Rottmann <a.rottmann@gmx.at>
580 * girepository/girnode.c (g_ir_node_build_typelib): Use sizeof()
581 instead of hard-coding struct sizes.
583 2008-11-18 Owen Taylor <otaylor@redhat.com>
585 Bug 561296 - Add "storage type" to the typelib data for enums
587 In order to set and get enum and flag fields in structures, we need
588 to know the integral type that the enumeration is stored as. We are already
589 computing that at compile time in order to compute struct offsets, so the
590 easiest thing to do is to save that in the typelib.
592 * docs/typelib-format.txt girepository/girnode.[ch] girepository/giroffsets.c
593 girepository/gtypelib.h: Add 'storage_type' to the typelib format for EnumBlob
594 and compute and save it at compile time.
596 * girepository/girepository.h girepository/ginfo.c:
597 Add g_enum_info_get_storage_type().
599 * girepository/gfield.c: Implement reading and writing enum and flags fields
600 based on the storage type.
602 2008-11-18 Owen Taylor <otaylor@redhat.com>
604 Add enums to the Everything test module
606 * tests/everything/everything.[ch]: Add TestEnum and TestFlags to the Everything
607 test module and register them as GTypes.
609 https://bugzilla.gnome.org/show_bug.cgi?id=561296
611 2008-11-18 Johan Dahlin <jdahlin@async.com.br>
613 * giscanner/cachestore.py:
614 Catch BadPickleGet exceptions as well.
616 2008-11-17 Owen Taylor <otaylor@redhat.com>
618 * tests/everything/everything.c: Fix doc comment annotations
619 for test_struct_b_clone() to refer to the right function.
621 2008-11-17 Dan Winship <danw@gnome.org>
623 * giscanner/glibtransformer.py (GLibTransformer.__init__): fix
624 spelling of GHashTable. #561135
626 * tests/scanner/annotation.c (annotation_object_get_hash):
627 * tests/scanner/annotation-1.0-expected.gir:
628 * tests/scanner/annotation-1.0-expected.tgir: add a test of
629 GHashTable annotations
631 2008-11-17 Andreas Rottmann <a.rottmann@gmx.at>
633 * giscanner/ast.py: Change string array match type to be in terms
634 of canonicalized type.
635 * giscanner/transformer.py: Add canonicalize_ctype which gives us
636 a version of a c:type without aliases, so we can deep canonicalize
637 char** to utf8*. Update parse_ctype to use it.
638 * tests/*: Add gtk_init like int*/char*** arg functions for testing.
640 2008-11-16 Colin Walters <walters@verbum.org>
642 * girepository/girepository.c: Ensure we always call init_globals,
643 even if passed a non-default repository.
645 2008-11-16 Colin Walters <walters@verbum.org>
647 Bug 559706 - Interface prerequisites
649 * common.mk: Dep on libgirepository.la for scanner libs so that
650 we rebuild things even if just gdump.c changes.
651 * girepository/gdump.c: Dump prerequisites.
652 * giscanner/ast.py: Add prerequisite list.
653 * giscanner/girparser.py: Parse them from gdump.
654 * giscanner/girwriter.py: Write them.
655 * giscanner/glibtransformer.py: Resolve them.
658 2008-11-16 Owen Taylor <otaylor@redhat.com>
660 Bug 561087 - Respect is_pointer in serialize_type()
662 Add a '*' to the serialization for the cases where we set is_pointer
663 in the type blob we write out depending on node->is_pointer. Don't
664 add the '*' in the cases where is_pointer is set or not set in a
667 http://bugzilla.gnome.org/show_bug.cgi?id=561087
669 2008-11-16 Owen Taylor <otaylor@redhat.com>
671 Bug 560825 – Add size and alignment to typelib
673 Include the size and alignment of structures and unions in the typelib,
674 and add getter methods to retrieve them from GIStructInfo/GIUnionInfo.
676 * docs/typelib-format.txt girepository/gtypelib.h girepository/girnode.c
677 girepository/girmodule.c girepository/gtypelib.c: Add size and alignment
678 to StructBlob and UnionBlob.
680 * girepository/ginfo.c girepository/girepository.h:
681 Add g_[struct|union]_get[size|alignment]().
683 * test/offsets/gen-gitestoffsets: Test overall structure size and alignment.
685 2008-11-16 Owen Taylor <otaylor@redhat.com>
687 Bug 552371 – implement struct field get/set
689 * girepository/gfield.c girepository/girepository.h: Add
690 convenience functions g_field_info_set_field() and
691 g_field_info_get_field() to set and get fields based on the
692 offsets in GIFieldInfo.
694 2008-11-16 Andreas Rottmann <a.rottmann@gmx.at>
696 Bug 560241 - Out-arguments should not be marked as being pointers
699 * girepository/girparser.c: Improved logic for out arguments.
701 2008-11-16 Andreas Rottmann <a.rottmann@gmx.at>
703 Bug 559601 - Pointers in structs/unions unduly treated as arrays
705 * giscanner/transformer.py: Differentiate type creation logic
706 between parameters and struct components.
708 2008-11-15 Colin Walters <walters@verbum.org>
710 * giscanner/dumper.py: Check return code from pkg-config
713 2008-11-14 Johan Dahlin <jdahlin@async.com.br>
715 * tests/everything/everything.c (test_array_int_in),
716 (test_array_gtype_in):
717 * tests/everything/everything.h:
718 Rename the int/gtype array tests. Make the return value
719 useful, an aggregation of the array input values.
721 2008-11-14 Johan Dahlin <jdahlin@async.com.br>
723 * tests/everything/Makefile.am:
724 * tests/everything/everything.c:
725 * tests/everything/everything.h:
726 * tests/everything/gitesttypes.c:
727 * tests/everything/gitesttypes.h:
728 Rename gitesttypes.[ch] to everything.[ch]
730 2008-11-13 Andreas Rottmann <a.rottmann@gmx.at>
732 Bug 560708 – Don't treat arrays that have a length specified as
733 zero-terminated by default
735 * giscanner/transformer.py: Default to non zero terminated for
737 * tests/*: Update, add test for zero vs not.
739 2008-11-13 Andreas Rottmann <a.rottmann@gmx.at>
741 Bug 557788 - Return types for constructors in generated typelib bogus
743 * girepository/girnode.c: Namespace-qualify XREFs; not doing so is
744 obviously broken in the face of duplicate names in different
746 * tests/scanner/*expected.gir: Fix up.
748 2008-11-13 Owen Taylor <otaylor@redhat.com>
750 * girepository/girffi.c: Fix "Unexpected time for time_t"
753 2008-11-13 Colin Walters <walters@verbum.org>
755 Bug 558436 - avoid having scanner load app code
757 * giscanner/cgobject.py: Delete; we no longer load shared
759 * giscanner/dumper.py: Support for linking a library to
760 a stub binary for introspection.
761 * giscanner/glibtransformer.py: Rewrite to use gdump XML
762 from invocation of child binary.
763 * giscanner/transformer.py: Fix up to use fully qualified
764 name in parse tree. Make parse_ctype public so we can use
765 it inside glibtransformer.
766 * tests/scanner/barapp.c: New test, using --program arg
768 * tests/*: Update to use common.mk for invoking scanner.
769 * tools/g-ir-scanner: Add options --program, --program-arg,
771 * docs/g-ir-scanner.1: Update.
773 2008-11-13 Colin Walters <walters@verbum.org>
775 * configure.ac: Depend on Gio, we use it in gdump.c.
776 * girepository/gdump.c: Code to dump GType data to XML.
777 * girepository/girepository.c: Add option group for dumping.
778 * girepository/girepository.h: Define API for the above.
780 2008-11-13 Colin Walters <walters@verbum.org>
782 * common.mk: Add a file to include with Makefile fragments
783 useful for scanner invocation.
785 2008-11-13 Tommi Komulainen <tommi.komulainen@iki.fi>
787 * tests/everything/gitesttypes.c (test_filename_return): Return
788 strings in filename encoding.
790 2008-11-13 Owen Taylor <otaylor@redhat.com>
792 Bug 560253 – Add structure and boxed types to Everything test module
794 * tests/everything/gitesttypes.[ch]: Add examples of:
796 Plain old data structs
797 Plain old data structs with nested fields
799 Plain old data boxed with nested fields
800 More complicated boxed types with internal state
802 2008-11-12 Johan Dahlin <jdahlin@async.com.br>
804 * tests/everything/gitesttypes.c (test_gtype_in):
805 * tests/everything/gitesttypes.h:
806 Add a test of GType arrays, a la gtk_list_store_set_columns.
808 2008-11-12 Owen Taylor <otaylor@redhat.com>
810 Bug 560419 – Cache includes when parsing
812 Keep track of all modules parsed within a GIrParser, and when a
813 module is referenced a second time, use the existing parsed copy
814 instead of reparsing.
816 2008-11-12 Owen Taylor <otaylor@redhat.com>
818 Fix management of ParseContext.includes_modules (#560419)
820 * girepository/girparser.c: Fix some trivial bugs in managing the
821 list of include modules. (Add to module's list twice, not
822 initialized to NULL, not freed.)
824 2008-11-12 Owen Taylor <otaylor@redhat.com>
826 Keep aliases and disguised_structures local to each module (#560419)
828 * girepository/girmodule.[ch]: When parsing, keep keep a separate
829 hash tables of aliases and 'disguised' flags for each module, and
830 store that on the module.
832 After parsing an include merge the aliases/disguised flags to the
835 * girepository/girparser.c: Remove 'prefix_aliases' flag and
836 always prefix aliases/disguised structure types when parsing; this
837 simplifies the code considerably.
839 2008-11-12 Owen Taylor <otaylor@redhat.com>
841 Fix mismatches between .gir name and 'name' attribute (#560419)
843 * tests/boxed.gir tests/constant.gir tests/enum.gir tests/invoke/invoke.c
844 tests/invoke/testfns-1.0.gir tests/object.gir tests/struct.gir: Fix places
845 where the 'name' element of <namespace/> didn't match the filename of the
846 gir, an assumption that the compiler has always expected and now enforces.
848 2008-11-12 Owen Taylor <otaylor@redhat.com>
850 Only allow one <namespace/> element per <repository/> (#560419)
852 * girepository/girparser.c: The logic in girparser.c didn't work
853 very well if there were multiple <namespace/> nodes within a
854 single <repository/> (context->namespace was always the overall
855 filename and not the the name specified in the <namespace/>
856 element for one thing; this would cause aliases to be mis-prefixed
857 in include modules.) Also check that the "name" in the
858 <namespace/> node matches the filename.
860 2008-11-12 Owen Taylor <otaylor@redhat.com>
862 Add a GirParser object to hold the state of a compilation
864 * girepository/girparser.[ch] tools/compiler.c: Add a toplevel
865 GirParser object to hold state that is global across a
866 compilation. Currently just holds the include path, but will
867 eventually also keep a cached list of parsed modules.
869 2008-11-12 Tommi Komulainen <tommi.komulainen@iki.fi>
871 * girepository/girepository.c (find_namespace_latest): Fix
874 2008-11-12 Tommi Komulainen <tommi.komulainen@iki.fi>
876 * configure.ac: use 'introspection' component for bugs
878 2008-11-12 Johan Dahlin <jdahlin@async.com.br>
880 * tests/everything/gitesttypes.c (test_filename_return):
881 * tests/everything/gitesttypes.h:
882 Add a filename return test.
884 2008-11-12 Tommi Komulainen <tommi.komulainen@iki.fi>
886 * tests/offsets/Makefile.am (gitestoffsets.c): fix
887 gen-gitestoffsets invocation with builddir != srcdir
889 2008-11-12 Johan Dahlin <jdahlin@async.com.br>
891 * girepository/girepository.c:
892 Change the element type from utf8 to filename
893 * girepository/girnode.c (g_ir_node_build_typelib):
894 Special case filename equally to utf8 here.
896 2008-11-12 Johan Dahlin <jdahlin@async.com.br>
899 Remove unused variables, add a dependency of girepository.ch, so when
900 they change we rebuild the gir automatically.
902 2008-11-12 Johan Dahlin <jdahlin@async.com.br>
904 * girepository/girepository.c (g_irepository_get_search_path):
905 * girepository/girepository.h:
906 Add a g_irepository_get_search_path, so we can access the search
909 2008-11-12 Johan Bilien <jobi@via.ecp.fr>
911 Bug 560474 – g-ir-compiler crashes when compiling the glib gir
913 * girepository/girparser.c: avoid freeing an uninitialized pointer
915 2008-11-12 Johan Dahlin <jdahlin@async.com.br>
918 * giscanner/glibtransformer.py:
919 * tools/g-ir-scanner:
920 Add a GIRepository-2.0.gir. Change the libtool lookup slightly
921 so we can just pass in --library=foo/bar/baz.la and the scanner
922 does the right thing.
923 Don't warn for _get_type() functions if they don't take any
926 2008-11-11 Owen Taylor <otaylor@redhat.com>
928 Bug 560404 – Prefix types when resolving aliases in included modules
930 * girepository/girparser.c: When resolving aliases in an included
931 module, prefix types before looking them up.
933 2008-11-11 Owen Taylor <otaylor@redhat.com>
935 Compute field offsets and overall size for object structures
937 Bug 560326 – Fails to build Gtk-2.0.typelib with "Unexpected non-pointer
938 field of type object in structure"
940 Do basic computation of field offsets for objects and interfaces;
941 this doesn't attempt to address all of the "mess" for virtual
942 functions described in Bug 560281.
944 2008-11-11 Tommi Komulainen <tommi.komulainen@iki.fi>
946 Bug 560308 – g-ir-compiler goes in infinite loop on Gdk-2.0.gir
948 Based on patch by Johan Bilien.
950 * giscanner/transformer.py (_create_member, _create_parameter):
951 Resolve types here as well.
952 (_resolve_type_name_1): Try resolving using 'ctype' first since
953 it's least ambiguous. Fixes struct member type resolution with
954 similarly named types, e.g. Gdk.PangoRendererClass and
956 * tests/scanner/foo*: Add test.
958 2008-11-11 Owen Taylor <otaylor@redhat.com>
960 * girepository/girparser.c: Search provided include dirs before
961 the default directories.
963 2008-11-11 Owen Taylor <otaylor@redhat.com>
965 * girepository/giroffsets.c: Include fully-qualified names in
968 2008-11-11 Owen Taylor <otaylor@redhat.com>
970 * girepository/giroffsets.c: Fail gracefully with an informative
971 error message when recursion is encountered when computing a
974 2008-11-11 Owen Taylor <otaylor@redhat.com>
976 * girepository/girparser.c: Remove an unused variable.
978 2008-11-10 Owen Taylor <otaylor@redhat.com>
980 Add tests for field offset computations
982 * tests/offsets/offsets.h: Header file with structure definitions to test
984 * tests/offsets/gen-gitestoffsets: Generate a C program that computes
985 field offsets for the structures in offsets.h two ways: using
986 the information from a generated typelib, and as computed by the
989 We diff these two versions to test that everything is OK.
991 2008-11-10 Owen Taylor <otaylor@redhat.com>
993 Remove field offsets from g-ir-generate output and test inputs
995 Field offsets are a) architecture dependent so they shouldn't be part
996 of the architecture-independent gir format which is installed in
997 datadir. b) Are architecture-dependent so they shouldn't be in test
1000 * girepository/girparser.c: Don't parse offset for fields
1001 * tools/generate.c: Don't parse offset for fields
1002 * tests/*.gir test/scanner/*.tgir: Remove offsets
1004 (Virtual function and discriminator offsets are not removed, as they
1005 aren't fully hooked up to the field-offset computation machinery yet.)
1007 2008-11-10 Owen Taylor <otaylor@redhat.com>
1009 Bug 560252 - Compute field offsets before writing typelib
1011 * girepository/girnode.h: Store the total size and alignment for
1012 GIrNodeStruct/Boxed/Union.
1014 * girepository/giroffset.c: New file implementing computation of
1015 structure field offsets.
1017 * girepository/girnode.c: Compute structure field offsets before
1018 writing types into the typelib.
1020 * docs/typelib-format.txt: Document that a field offset of 0xFFFF
1021 means "unknown". Also fix description of the discriminator_offset
1024 2008-11-10 Owen Taylor <otaylor@redhat.com>
1026 Bug 560250 - Fully parse included modules
1028 For some things, like computing structure offsets to put into the typelib
1029 we need more than just the aliases from included modules. Do a completel
1030 parse of included modules and store in module->included_modules.
1032 Also add g_ir_find_node() to find node information from within the
1033 active set of modules and their includes.
1035 2008-11-10 Owen Taylor <otaylor@redhat.com>
1037 Split g_ir_ffi_get_ffi_type() out from ginvoke.c
1039 Extract a function to convert GITypeTag to ffi_type from the internals
1040 of ginvoke.c. This will be useful in figure out structure alignment.
1042 Also fix handling of gsize and time_t to be portable. (Add a check
1043 to configure.ac to figure out the width of time_t.)
1045 2008-11-10 Owen Taylor <otaylor@redhat.com>
1047 Bug 560248 – "disguised structures"
1049 Certain types like GIConv and GdkAtom are pointers internally but don't
1050 look like pointers when referenced. They have the form.
1052 typedef struct _X *X;
1054 Parse these as structures/records but mark them in the gir with a 'disguised'
1055 attribute so that we know that they need special handling.
1057 In the typelib treat them like any other structure.
1059 2008-11-09 Jürg Billeter <j@bitron.ch>
1062 * giscanner/girwriter.py:
1064 Write throws attribute for virtual functions, fixes bug 559703
1066 2008-11-07 Johan Dahlin <jdahlin@async.com.br>
1068 * giscanner/libtoolimporter.py (LibtoolImporter.find_module): Clear
1069 up some confusion about the second argument to find_module, it's
1070 actually the packages __path__ attribute which we can safely ignore
1072 (LibtoolImporter.load_module): Set module.__loader__ as per PEP 302.
1074 2008-11-07 Owen Taylor <otaylor@redhat.com>
1076 Bug 559737 – Deal with continuations in macros
1078 * giscanner/giscannerlexer.l: Treat continuation lines the same
1079 as regular newlines. This makes the scanner not complain about
1080 #define foo(x) \ <stuff> inside a C file. There's no attempt
1081 however to handle parsing macro definitions split across lines.
1083 2008-11-07 Johan Dahlin <jdahlin@async.com.br>
1085 * giscanner/cachestore.py:
1086 Handle broken cache entries, write only filesystems and
1087 running out of diskspace.
1089 2008-11-07 Owen Taylor <otaylor@redhat.com>
1091 * giscanner/giscannermodule.c (pygi_source_scanner_lex_filename):
1092 Set current_filename before lexing the file so error messages
1093 are reported in the right file.
1095 2008-11-06 Colin Walters <walters@verbum.org>
1097 * tests/everything/*: Add some tests for strv.
1099 2008-11-05 Colin Walters <walters@verbum.org>
1101 * girepository/ginvoke.c (g_function_info_invoke): Don't use
1102 nested scope local variable for error which may go away after
1103 conditional is complete.
1105 2008-11-05 Colin Walters <walters@verbum.org>
1107 * giscanner/scannerlexer.l: Avoid static 256 char buf which we
1108 manipulate hackily; just use GString. This avoids an
1109 uninitialized memory read pointed out by Havoc.
1111 2008-11-04 Johan Dahlin <jdahlin@async.com.br>
1113 * giscanner/__init__.py:
1115 * giscanner/cachestore.py:
1116 * giscanner/cgobject.py:
1117 * giscanner/girparser.py:
1118 * giscanner/girwriter.py:
1119 * giscanner/giscannermodule.c:
1120 * giscanner/glibast.py:
1121 * giscanner/glibtransformer.py:
1122 * giscanner/libtoolimporter.py:
1123 * giscanner/minixpath.py:
1124 * giscanner/odict.py:
1125 * giscanner/sourcescanner.c:
1126 * giscanner/sourcescanner.h:
1127 * giscanner/sourcescanner.py:
1128 * giscanner/transformer.py:
1129 * giscanner/utils.py:
1130 * giscanner/xmlwriter.py:
1132 Relicense the giscanner library under LGPLv2+.
1133 This has been approved by all contributors.
1135 2008-11-01 Owen Taylor <otaylor@redhat.com>
1137 Bug 558848 giparser.py: shared library should be optional
1139 When parsing a .gir, allow the shared-library attribute
1140 of <namespace/> to be missing: this corresponds to the handling
1141 in libgirepository and elsewhere.
1143 2008-11-01 Tommi Komulainen <tommi.komulainen@iki.fi>
1145 Bug 557898 – Fails to build on OSX 10.4
1147 * configure.ac: Check for $shrext_cmds that should be implicitly
1148 available if you're using libtool >= 2.0. If undefined, call
1149 libtool --config explicitly to get its value.
1150 * girepository/gtypelib.c: Remove special case for (non-)Darwin
1151 systems as unneeded.
1153 2008-10-31 Colin Walters <walters@verbum.org>
1155 * COPYING, COPYING.lib, COPYING.tools: Clarify licensing status.
1157 2008-10-31 Johan Dahlin <jdahlin@async.com.br>
1159 * configure.ac: Post release version bump
1162 2008-10-31 Johan Dahlin <jdahlin@async.com.br>
1166 * docs/release-checklist.txt:
1169 2008-10-31 Johan Dahlin <jdahlin@async.com.br>
1171 * Makefile.am: add an upload-release target
1172 * docs/release-checklist.txt:
1173 Release process documentation
1175 2008-10-31 Colin Walters <walters@verbum.org>
1177 Bug 558109 – _g_typelib_init fails to find shared libraries
1179 * transformer/glibtransformer.py: Use ctypes' find_library
1180 on passed libraries and write that for the shared-library
1181 entry. We want to avoid depending on -devel packages.
1183 2008-10-31 Johan Dahlin <jdahlin@async.com.br>
1185 * docs/g-ir-scanner.1:
1186 Document the renaming options.
1188 2008-10-31 Tommi Komulainen <tommi.komulainen@iki.fi>
1190 * giscanner/Makefile.am:
1191 * tests/invoke/Makefile.am:
1192 * tests/repository/Makefile.am: List in-tree libraries first in
1193 LDADD / LIBADD. If installed library is listed first, the
1194 resulting binary will prefer installed version to one in .libs,
1195 possibly making 'make check' behave strangely.
1197 2008-10-30 Tommi Komulainen <tommi.komulainen@iki.fi>
1199 * giscanner/ast.py: map 'id' (ObjC) to 'any' type to stop
1200 gir-repository from choking with gdk/quartz
1202 2008-10-30 Johan Dahlin <jdahlin@async.com.br>
1204 * giscanner/giscannermodule.c (calc_attrs_length),
1205 (pygi_collect_attributes):
1206 * giscanner/xmlwriter.py:
1207 Write a C version of the xml namespace formatter.
1208 Saves 15% of the time it takes to create a gtk gir.
1210 2008-10-30 Johan Dahlin <jdahlin@async.com.br>
1212 * giscanner/xmlwriter.py: Abstract attribute formatting
1213 to a function external to the XMLWriter class.
1215 * giscanner/scannerlexer.l:
1216 Parse and discard __typeof and __attribute.
1218 2008-10-30 Johan Dahlin <jdahlin@async.com.br>
1220 * giscanner/girparser.py:
1221 Remove arguments from the constructor, move them to
1222 separate accessors. Add a new parse_tree method
1223 which takes an element tree instance.
1224 * tools/g-ir-scanner:
1225 Update callsite for this
1227 * giscanner/Makefile.am:
1228 * giscanner/cachestore.py:
1229 * giscanner/transformer.py:
1230 Cache the include parsing. Saves ~25% time when
1231 creating vte (which includes everything up to gtk+).
1233 2008-10-30 Colin Walters <walters@verbum.org>
1235 * giscanner/transformer.py: Don't reparse includes
1236 we've already processed.
1238 2008-10-30 Johan Dahlin <jdahlin@async.com.br>
1240 * giscanner/girparser.py:
1241 * giscanner/transformer.py:
1242 Avoid parsing parameters, types etc when parsing
1243 includes. Should speed up include parsing a bit.
1245 2008-10-30 Johan Dahlin <jdahlin@async.com.br>
1247 * giscanner/girparser.py:
1248 Avoid big if/else and use a dispatch table like
1251 2008-10-30 Johan Dahlin <jdahlin@async.com.br>
1253 * giscanner/transformer.py:
1254 Clean up include parsing and registration.
1256 2008-10-30 Johan Dahlin <jdahlin@async.com.br>
1258 * giscanner/transformer.py:
1261 2008-10-30 Johan Dahlin <jdahlin@async.com.br>
1263 Bug 558383 – builddir != srcdir build fails if giscanner python module not already installed
1266 construct PYTHONPATH just once
1268 * tests/everything/Makefile.am:
1269 * tests/scanner/Makefile.am:
1270 add $(top_srcdir) to PYTHONPATH to
1271 handle builddir != srcdir
1273 * giscanner/libtoolimporter.py:
1274 * giscanner/sourcescanner.py:
1275 Make the libtoolimporter work when distchecking too.
1277 Mostly based on patch by Tommi Komulainen
1279 2008-10-29 Owen Taylor <otaylor@redhat.com>
1281 * giscanner/glibtransformer.py: If a filename of an existing
1282 file is passed to --library, hunt for it directly, rather than
1283 searching for a corresponding library.
1285 2008-10-29 Johan Dahlin <jdahlin@async.com.br>
1287 * giscanner/libtoolimporter.py:
1288 * giscanner/sourcescanner.py:
1289 Clean up the libtool importer a bit. Add a context so we
1290 can use it through a with statement.
1291 Don't just look in the current directory, look in the whole
1294 2008-10-29 Tommi Komulainen <tommi.komulainen@iki.fi>
1296 Bug 558065 – gitesttypes should be installed
1299 * tests/Makefile.am:
1300 * tests/types/Makefile.am -> tests/everything/Makefile.am
1301 * tests/types/gitesttypes.c -> tests/everything/gitesttypes.c
1302 * tests/types/gitesttypes.h -> tests/everything/gitesttypes.h
1303 move tests/types to tests/everything
1305 * tests/everything/Makefile.am: build normal shared library
1306 libgirepository-everything.so.1.0.0 and corresponding typelib
1307 Everything-1.0.typelib
1309 * tests/everything/Makefile.am: explicitly link libtool
1310 versioning with typelib versioning with variables
1312 2008-10-28 Johan Bilien <jobi@via.ecp.fr>
1314 * tools/g-ir-scanner: add LD_LIBRARY_PATH to LPATH before calling ld.
1316 2008-10-27 Johan Bilien <jobi@via.ecp.fr>
1318 * gio/gio-2.0.c: add allow-none annotations, based on the pygobject
1321 2008-10-27 Johan Bilien <jobi@via.ecp.fr>
1323 Bug 558068 – when invoking a method, offset the in arguments by one,
1326 * tests/invoke/invoke.c, tests/invoke/testfns.c,
1327 tests/invoke/testfns-1.0.gir: Add testing of method and constructor.
1328 * girepository/ginvoke.c: do not offset the index of given out
1329 arguments by one for methods, "this" is provided as in argument only.
1331 2008-10-27 Johan Bilien <jobi@via.ecp.fr>
1333 * gir/gio-2.0.c: add annotation for g_file_delete
1335 2008-10-27 Tommi Komulainen <tommi.komulainen@iki.fi>
1337 Bug 558062 – provide and use paths in the .pc file
1339 * gobject-introspection-1.0.pc.in: provide typelibdir variable
1340 for where .typelibs should be installed (callers shouldn't need
1341 to construct paths from bits and pieces)
1343 2008-10-25 Andreas Rottmann <a.rottmann@gmx.at>
1345 Bug 557791 – g_irepository_require() could return a GTypelib *
1347 * girepository/girepository.c: Return GTypelib; this is useful
1348 for low level manipulation.
1350 2008-10-25 Colin Walters <walters@verbum.org>
1352 Bug 557788 – Return types for constructors in generated typelib bogus
1354 * giscanner/glibtransformer.py: Don't resolve ctors incrementally,
1355 rely on end pass resolution.
1357 2008-10-25 Andreas Rottmann <a.rottmann@gmx.at>
1359 Bug 557786 - support fixed size arrays
1361 * girepository/ginfo.c: Add g_type_info_get_array_fixed_size.
1362 * giscanner/scannerparser.y: Retain fixed array size.
1363 * giscanner/ast.py: Add to note.
1364 * giscanner/girwriter.py: Write to gir.
1365 * girepository/girnode.c: Write it to typelib.
1366 * tools/generate.c: Generate.
1367 * tests/*: Add tests.
1369 2008-10-25 Colin Walters <walters@verbum.org>
1371 Bug 557076 - move typelibs to $libdir
1373 * configure.ac: Steal some configury bits from dbus to expand
1375 * gir/Makefile.am: Move to libdir.
1376 * girepository/girepository.c: Stop searching XDG_DATA_DIRS;
1377 instead just look at one hardcoded path in libdir.
1378 * acinclude.m4: Bits from dbus.
1380 2008-10-24 Johan Dahlin <johan@gnome.org>
1382 * girepository/girnode.c (g_ir_node_check_unhandled_members):
1383 Be quiet, do not warn about unhandled members.
1385 2008-10-24 Johan Dahlin <johan@gnome.org>
1387 * girepository/gtypelib.c:
1388 Only use SHLIB_SUFFIX on darwin, otherwise use
1389 G_MODULE_SUFFIX, we cannot get shext_cmds from libtool 2.2.
1391 2008-10-24 Lucas Rocha <lucasr@gnome.org>
1393 Bug 557623 - Constructors shouldn't be flagged as methods.
1395 * girepository/ginfo.c (g_function_info_get_flags): ditto.
1397 2008-10-24 Johan Dahlin <johan@gnome.org>
1399 * giscanner/scannerparser.y:
1400 Check against division by zero for the modula operator.
1401 This fixes header parsing of OSX system headers included
1404 2008-10-24 Johan Dahlin <johan@gnome.org>
1408 Add a CONTRIBUTORS file and dist it.
1410 2008-10-23 Tommi Komulainen <tommi.komulainen@iki.fi>
1412 Bug 556739 – transfer-ownership attribute should be mandatory in .gir
1414 * girepository/girparser.c (parse_param_transfer):
1415 * giscanner/transformer.py (_create_parameter, _create_return):
1416 * giscanner/girwriter.py (_write_return, _write_parameter):
1417 * tools/generate.c (write_callable_info): always write and
1418 require "transfer-ownership" for return-values and parameters
1421 * tests/invoke/testfns-1.0.gir:
1423 * tests/scanner/DrawableAdditions.xml:
1424 * tests/scanner/GtkFrob-1.0-expected.tgir:
1425 * tests/scanner/annotation-1.0-expected.tgir:
1426 * tests/scanner/drawable-1.0-expected.tgir:
1427 * tests/scanner/drawable-injected-1.0-expected.gir:
1428 * tests/scanner/drawable-injected-1.0-expected.tgir:
1429 * tests/scanner/foo-1.0-expected.tgir: Updated
1431 2008-10-23 Tommi Komulainen <tommi.komulainen@iki.fi>
1433 * giscanner/cgobject.py: build fundamental types same way as glib
1435 * giscanner/glibtransformer.py (_type_from_gtype): record GType
1436 when constructing the Type from it
1438 * giscanner/glibtransformer.py (_adjust_transfer): Check whether
1439 the parameter is a GObject from its GType, if available.
1441 * giscanner/glibtransformer.py (_adjust_transfer):
1442 * tests/scanner/foo-1.0-expected.gir:
1443 * tests/scanner/foo-1.0-expected.tgir: deduce
1444 transfer-ownership from GTypes
1446 2008-10-23 Tommi Komulainen <tommi.komulainen@iki.fi>
1448 * giscanner/transformer.py (_create_parameter):
1449 * tests/scanner/foo-1.0-expected.gir: make varargs
1450 transfer-ownership="none"
1452 2008-10-23 Colin Walters <walters@verbum.org>
1454 Bug 556739 - transfer ownership
1456 * giscanner/ast.py: Refactor Parameter/Return to share
1457 common attributes. Add transfer_inferred attribute
1458 which says whether or not we made a guess.
1459 * giscanner/transformer.py: Add much more extensive
1460 heuristics around parameter and return transfer.
1461 * giscanner/glibtransformer.py: Adjust to inspect
1465 2008-10-22 Tommi Komulainen <tommi.komulainen@iki.fi>
1467 Bug 557377 – Add test to ensure annotations survive the roundtrip via typelib
1469 * tests/scanner/Makefile.am:
1470 * tests/scanner/annotation-1.0-expected.tgir:
1471 * tests/scanner/drawable-1.0-expected.tgir:
1472 * tests/scanner/drawable-injected-1.0-expected.tgir:
1473 * tests/scanner/foo-1.0-expected.tgir:
1474 * tests/scanner/GtkFrob-1.0-expected.tgir:
1475 * tests/scanner/utility-1.0-expected.tgir: Add test to ensure
1476 annotations survive the roundtrip via typelib
1478 The expectations are as currently produced by g-ir-generate,
1479 comparison with the .gir files shows there are differences.
1481 2008-10-23 Johan Bilien <jobi@via.ecp.fr>
1483 Bug 557468 – Support for GI_TYPELIB_PATH
1485 * girepository/girepository.c: if the GI_TYPELIB_PATH is set, add the
1486 provided paths to the global search path.
1488 2008-10-22 Tommi Komulainen <tommi.komulainen@iki.fi>
1490 Bug 557379 – g-ir-generate not writing the 'abstract' attribute
1492 * tests/scanner/drawable-1.0-expected.tgir:
1493 * tests/scanner/drawable-injected-1.0-expected.tgir:
1494 * tests/scanner/foo-1.0-expected.tgir:
1495 * tools/generate.c (write_object_info): write 'abstract'
1496 attribute for classes
1498 2008-10-22 Lucas Rocha <lucasr@gnome.org>
1500 * girepository/girmodule.c, girepository/gtypelib.c,
1501 girepository/girparser.[ch]: fix some build warnings.
1503 2008-10-22 Tommi Komulainen <tommi.komulainen@iki.fi>
1505 Bug 557405 – Use 'allow-none' consistently
1507 * docs/typelib-format.txt:
1508 * girepository/ginfo.c (g_arg_info_may_be_null):
1509 * girepository/girnode.c (g_ir_node_build_typelib):
1510 * girepository/girnode.h (struct _GIrNodeParam):
1511 * girepository/girparser.c (start_parameter):
1512 * girepository/girwriter.c (function_generate):
1513 * girepository/gtypelib.h (ArgBlob):
1515 * tests/function.gir:
1516 * tools/generate.c (write_callable_info): Use 'allow-none'
1517 consistently throughout
1519 2008-10-22 Tommi Komulainen <tommi.komulainen@iki.fi>
1521 Bug 557092 – Callback annotations not used
1523 * giscanner/transformer.py (_create_callback): use annotations
1525 * tests/scanner/annotation.h
1526 * tests/scanner/annotation-1.0-expected.gir: add tests
1528 2008-10-21 Colin Walters <walters@verbum.org>
1530 * giscanner/scannerlexer.l: Don't require trailing whitespace after
1531 uncommented parameters.
1534 2008-10-21 Colin Walters <walters@verbum.org>
1536 * girepository/girepository.c: Ensure that when doing an unversioned
1537 require, we prefer items earlier in the search path to later ones.
1539 2008-10-21 Owen Taylor <otaylor@redhat.com>
1541 * giscanner/transformer.py: For string parameters allow transfer annotation
1542 to override the standard automatic guessing based on 'const'.
1544 2008-10-21 Johan Bilien <jobi@via.ecp.fr>
1546 Bug 557241 – "throws" flag for functions
1548 * tests/scanner/drawable-1.0-expected.gir,
1549 tests/scanner/drawable-injected-1.0-expected.gir,
1550 tests/scanner/drawable.[ch]: add simple test for throwing
1551 function (has GError ** as last argument)
1553 * giscanner/ast.py: add a 'throws' flag to Function
1554 * giscanner/glibtransformer.py: if a function's last paramerter is
1555 a GError, set the 'throws' flag and remove that parameter
1556 * giscanner/girwriter.py: write out the 'throws' attribute
1557 * giscanner/girparser.py: support parsing the 'throws' attribute
1559 * tests/repository/gitestthrows.c: add a simple test to check the
1560 throws flag in a typelib and invoke the function
1562 * girepository/ginfo.c, girepository/girnode.[ch],
1563 girepository/girnode.h, girepository/girparser.c,
1564 girepository/girepository.h: Add and parse the GI_FUNCTION_THROWS flag
1566 * girepository/ginvoke.c: if a function throws, add a GError as last
1567 arguments, and propagate the error to the invoker.
1569 2008-10-21 Tommi Komulainen <tommi.komulainen@iki.fi>
1571 * giscanner/transformer.py (_create_parameters): Warn if we see
1572 annotations for unknown parameters. If .h and .c files name
1573 parameters differently, the annotations may be lost.
1575 2008-10-21 Johan Dahlin <johan@gnome.org>
1577 Bug 556358 - don't use libtool internals
1579 * giscanner/Makefile.am:
1580 * giscanner/libtoolimporter.py:
1581 * giscanner/sourcescanner.py:
1582 * giscanner/utils.py:
1583 Add a python meta importer and remove a libtool symlink hack.
1585 2008-10-20 Andreas Rottmann <a.rottmann@gmx.at>
1587 * tests/scanner/Makefile.am (%.typelib): Set PYTHONPATH
1588 and --add-include-path appropriately when invoking the scanner.
1589 * tests/types/Makefile.am (%typelib): Likewise.
1591 2008-10-20 Colin Walters <walters@verbum.org>
1593 Bug 556777 - validate properties
1595 * giscanner/transformer.py: Add option to throw on unknown types.
1596 * giscanner/glibtransformer.py: Use it on properties.
1597 * tests/*: Add a test.
1599 2008-10-20 Colin Walters <walters@verbum.org>
1601 * giscanner/glibast.py: Also register g variants of
1602 default_array_types. This is not beautiful, but
1603 good alternatives aren't easy to come by.
1604 This fixes gchar ** parsing.
1606 2008-10-20 Colin Walters <walters@verbum.org>
1608 * docs/typelib-format.txt, girepository/gtypelib.h:
1609 Take a bit from ObjectInfo to represent abstract flag.
1610 * giscanner/cgobject.py: Expose g_type_get_flags.
1611 * girepository/girepository.h: Add accessor.
1612 * girepository/ginfo.c: Implement it.
1613 * giscanner/ast.py: Add is_abstract flag to generic
1615 * giscanner/glibast.py: Use it.
1616 * giscanner/girwriter.py: Write it.
1617 * girepository/girparser.c: Parse it.
1620 2008-10-20 Tommi Komulainen <tommi.komulainen@iki.fi>
1622 * giscanner/girparser.py (_parse_function): don't lose
1623 'transfer-ownership' attributes when injecting, check for the
1626 2008-10-19 Johan Dahlin <johan@gnome.org>
1628 * giscanner/scannerlexer.l: Parse and ignore __asm.
1630 2008-10-19 Colin Walters <walters@verbum.org>
1632 * giscanner/girparser.py: Parse array length= to ensure
1633 it doesn't get lost from --inject.
1635 2008-10-17 Colin Walters <walters@verbum.org>
1637 Bug 556795 - char ** regression
1639 * giscanner/transformer.py: Fix parsing of ctypes, add some
1640 comments about what's going on.
1641 * tests/*: Add a test for char **.
1643 2008-10-17 Colin Walters <walters@verbum.org>
1645 Bug 556783 - change namespace handling to be more consistent
1647 * giscanner/transformer.py: Eliminate usage of
1648 strip_namespace_object. We now treat --namespace as the default
1649 --strip-prefix; however, if --strip-prefix is specified it
1650 overrides --namespace. This applies to everything except function
1651 names, where we do also strip the namespace.
1652 * giscanner/glibtransformer.py: Remove usage of
1653 strip_namespace_object.
1655 * tests/*: Add skeletal GtkFrob-1.0 test which has different
1656 --namespace and --strip-prefix.
1658 2008-10-17 Tommi Komulainen <tommi.komulainen@iki.fi>
1660 Bug 556732 – generate gir files consistently
1662 * girepository/girparser.c (start_parameter):
1664 * tests/invoke/testfns-1.0.gir:
1665 * tools/generate.c (write_callable_info): write
1666 'transfer-ownership' attribute consistently with both
1667 return-value and parameter elements
1669 2008-10-17 Tommi Komulainen <tommi.komulainen@iki.fi>
1671 Bug 556732 – generate gir files consistently
1673 * tools/generate.c (write_callable_info): write 'direction'
1674 attribute only if other than 'in' to be consistent with
1677 * tests/object.gir: remove direction="in" which is the default
1679 2008-10-17 Tommi Komulainen <tommi.komulainen@iki.fi>
1681 Bug 556732 – generate gir files consistently
1683 * giscanner/ast.py (Field): add readable and writable properties
1684 * giscanner/girparser.py (_parse_field): copy 'readable' and
1685 'writable' attributes
1686 * giscanner/transformer.py (_create_member): create fields as
1688 * giscanner/glibtransformer.py (_introspect_object,
1689 _pair_class_struct): make object instance and class fields
1691 * giscanner/girwriter.py (_write_field):
1692 * tools/generate.c (write_field_info): write field 'readable'
1693 and 'writable' attributes only if non-default (read-only)
1694 * girepository/girparser.c (start_field): in the absence of
1695 attributes assume fields are read-only
1697 * tests/struct.gir: remove redundant readable="1" from fields
1698 * tests/scanner/foo-1.0-expected.gir:
1699 * tests/scanner/utility-1.0-expected.gir: add writable="1" to
1700 all record and union fields
1702 2008-10-17 Tommi Komulainen <tommi.komulainen@iki.fi>
1704 Bug 556732 – generate gir files consistently
1706 * giscanner/girwriter.py (_write_property): write properties
1707 'construct' attribute if set
1708 * tools/generate.c (write_property_info): write properties
1709 'readable' and 'writable' attributes only if non-default
1710 * tests/object.gir: add writable="0"
1711 * tests/scanner/foo-1.0-expected.gir: add construct="1"
1713 2008-10-17 Johan Bilien <jobi@via.ecp.fr>
1715 * gir/glib-2.0.c: added annotations
1717 2008-10-16 Johan Bilien <jobi@via.ecp.fr>
1719 * giscanner/ast.py: Also assume direction=out for size_t*, ssize_t*
1722 2008-10-16 Johan Bilien <jobi@via.ecp.fr>
1724 Bug 556610 – giscanner/girparser.py drops parameter options
1726 * tests/scanner/drawable-injected-1.0-expected.gir,
1727 tests/scanner/DrawableAdditions.xml: added simple test for injection.
1728 * giscanner/ast.py: allow Parameter to take options in the constructor
1729 * giscanner/girparser.py: parse parameter options (transfer,
1730 direction, allow-none)
1732 2008-10-16 Colin Walters <walters@verbum.org>
1734 Bug 556185 - segfault on g_callable_info_get_return_type
1736 Initial patch from John Ehresman.
1738 * tests/repository/*: Add a test using
1739 g_callable_info_get_return_type. Instead of casting a
1740 GITypeInfo directly to a GIRegisteredTypeInfo, we need
1741 to call g_type_info_get_interface.
1743 2008-10-16 Colin Walters <walters@verbum.org>
1745 Bug 556579 - union and struct name misresolved
1747 * giscanner/transformer.py: The calls to _resolve_type_name
1748 for struct/union names was a legacy holdover from when type
1749 resolution had multiple phases. Now it's actively harmful
1750 since we might pull in an identical name from another
1754 2008-10-16 Colin Walters <walters@verbum.org>
1756 Bug 556432 - transfer annotations and defaults
1758 * giscanner/transformer.py: Canonicalize type
1759 after removing *, not before. This ensures that
1760 guchar* is transformed to 'uint8'.
1761 Add some comments here.
1762 * giscanner/glibtransformer.py: Add _adjust_transfer
1763 phase for tweaking GObject transfers.
1766 2008-10-16 Tommi Komulainen <tommi.komulainen@iki.fi>
1768 * configure.ac: enable bunch of gcc warning CFLAGS
1770 2008-10-16 Tommi Komulainen <tommi.komulainen@iki.fi>
1772 Bug 556543 – reduce compiler warnings
1774 * girepository/ginfo.c:
1775 * girepository/girepository.c (register_internal,
1776 count_interfaces, find_interface, find_namespace_version,
1777 parse_version, g_irepository_require):
1778 * girepository/girmodule.c (g_ir_module_build_typelib):
1779 * girepository/girnode.c (init_stats, dump_stats,
1780 _g_irnode_init_stats, _g_irnode_dump_stats,
1781 g_ir_node_can_have_member):
1782 * girepository/girparser.c (firstpass_end_element_handler,
1783 locate_gir, parse_basic, parse_type_internal, resolve_aliases,
1784 start_alias, start_type, end_type_top, parse_include, cleanup,
1786 * girepository/gtypelib.c (validate_function_blob, validate_enum_blob):
1787 * giscanner/giscannermodule.c (directive_get_options,
1788 type_get_child_list):
1789 * giscanner/scannerlexer.l (parse_gtkdoc):
1790 * giscanner/scannerparser.y (ctype_free):
1791 * giscanner/sourcescanner.c:
1792 * giscanner/sourcescanner.h (gi_source_scanner_parse_macros):
1793 * tests/types/gitesttypes.c:
1794 * tools/compiler.c (main):
1795 * tools/generate.c (write_repository): Remove unused variables
1796 and code, add missing includes, declarations and case
1799 2008-10-16 Tommi Komulainen <tommi.komulainen@iki.fi>
1801 Bug 556541 – access union members through UnionBlob rather than
1804 * girepository/ginfo.c (g_union_info_find_method): access union
1805 members through UnionBlob rather than StructBlob
1807 2008-10-15 Colin Walters <walters@verbum.org>
1809 Bug 556331 - clean up includes handling
1811 * tools/g-ir-scanner: Rework command line arguments; now we take
1812 --add-include-path and --include separately.
1813 * giscanner/girwriter.py: Separate name= and version= in include
1815 * giscanner/ast.py: Add Include type.
1816 * giscanner/transformer.py: Cleanups to register_include now that
1817 we don't need to handle mixed filenames and relative arguments.
1818 * girepository/girparser.c: Parse name and version separately;
1819 this fixes a bug as a side effect where we weren't resolving
1820 through aliases for basic types.
1821 * girepository/girepository.c: Fix format string args.
1822 * gir/Makefile.am: Update.
1825 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
1827 Bug 556434 – unhandled interface/object/... member types
1829 * girepository/girnode.c (g_ir_node_check_unhandled_members,
1830 g_ir_node_build_typelib): Check all
1831 interface/object/boxed/struct/union members are processed and
1832 abort if they are not. (Mostly callbacks in structs, but also
1833 fields in interfaces.)
1835 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
1837 * a/girepository/girnode.c (g_ir_node_build_members,
1838 g_ir_node_build_typelib): refactor common code for processing
1839 members to a function
1841 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
1843 * gir/Makefile.am (check-local): check that typelib -> gir -> typelib
1844 transformation is lossless (it's not)
1846 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
1848 * tests/Makefile.am: fix tests to compare xml to xml instead of
1849 typelib to xml, and stop on error
1851 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
1853 * tools/generate.c (write_type_name, write_type_info,
1854 write_type_info, write_object_info, write_object_info,
1855 write_interface_info, write_error_domain_info): reduce code
1858 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
1860 Bug 556174 – parse types for lists etc.
1862 * girepository/girparser.c (end_type_recurse):
1864 * tools/generate.c (write_type_info, write_field_info,
1865 write_callable_info, write_callable_info, write_constant_info,
1866 write_property_info): use nested <type>s for lists and hashes
1868 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
1871 * tests/object.gir: remove trailing whitespace from inside
1872 elements to match g-ir-generate output
1874 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
1876 * tools/generate.c (xml_printf): quote printf arguments so that
1877 we don't generate invalid XML by writing unescaped double quotes
1878 and such in attributes
1880 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
1882 * tools/generate.c (write_field_info, write_callable_info,
1883 write_function_info, write_callback_info, write_struct_info,
1884 write_constant_value, write_signal_info, write_vfunc_info,
1885 write_object_info, write_interface_info, write_union_info,
1886 write_repository): remove unused indent parameters, xmlwriter
1887 keeps track of necessary indentation
1889 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
1891 * tools/generate.c (xml_element_new, xml_element_free,
1892 xml_start_element, xml_end_element, xml_end_element_unchecked,
1893 xml_open, xml_close): Keep track of generated XML tree and
1894 handle indentation and closing tags properly.
1895 (write_field_info, write_callable_info, write_function_info,
1896 write_callback_info, write_struct_info, write_value_info,
1897 write_constant_info, write_enum_info, write_signal_info,
1898 write_vfunc_info, write_property_info, write_object_info,
1899 write_interface_info, write_error_domain_info, write_union_info,
1900 write_repository): Use xml_start_element and xml_end_element to
1903 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
1905 * tools/generate.c (xml_printf, xml_open, xml_close, xml_free):
1906 (write_type_name, write_type_info, write_field_info,
1907 write_callable_info, write_function_info, write_callback_info,
1908 write_struct_info, write_value_info, write_constant_value,
1909 write_constant_info, write_enum_info, write_signal_info,
1910 write_vfunc_info, write_property_info, write_object_info,
1911 write_interface_info, write_error_domain_info, write_union_info,
1912 write_repository): wrap all FILE access to go through simple xmlwriter
1914 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
1916 Bug 556400 – Fails to build on OS X 10.4
1918 * configure.ac: check for functions backtrace and backtrace_symbols
1919 * girepository/girparser.c (backtrace_stderr): Comment out
1920 implementation if the functions are not available.
1921 * gcov.mak (clean-gcov, clean-gcno): always call 'find' with a
1922 directory for better portability
1924 2008-10-15 Johan Bilien <jobi@via.ecp.fr>
1926 Bug 556433 – assume direction = out for int * parameters
1928 * giscanner/ast.py: define a list of types for which, if passed as
1929 reference, we assume a default direction of 'out'
1930 * giscanner/transformer.py: if a type has type pointer to one of the
1931 previously defined types, and no direction is set, assume out.
1932 * tests/scanner/drawable.[ch]: added tests for guessed direction=out
1934 2008-10-15 Johan Bilien <jobi@via.ecp.fr>
1936 * tests/scanner/annotation.c: fixed a few copy-paste errors
1938 2008-10-14 Johan Bilien <jobi@via.ecp.fr>
1940 Bug 556323 – transfer-ownership is wrong for functions returning const
1943 * giscanner/transformer.py: check for a const string as return value,
1944 not just const char*. Suggested by Colin Walters
1945 * tests/scanner/annotation-1.0-expected.gir: updated expected output
1947 2008-10-14 Johan Bilien <jobi@via.ecp.fr>
1949 * girepository/ginfo.c, girepository/girepository.h: add
1950 g_union_info_find_method
1952 2008-10-14 Colin Walters <walters@verbum.org>
1954 * tests/repository/Makefile.am: Reenable repo test.
1955 * tests/repository/gitestrepo.c: Prepend search
1956 path for $(top_builddir)/gir dir so that we don't
1957 require installation for "make check" to pass.
1959 2008-10-13 Jürg Billeter <j@bitron.ch>
1961 * giscanner/glibtransformer.py:
1962 * tests/scanner/annotation-1.0-expected.gir:
1963 * tests/scanner/drawable-1.0-expected.gir:
1964 * tests/scanner/foo-1.0-expected.gir:
1965 * tests/scanner/utility-1.0-expected.gir:
1967 Support fields in GObject structs
1969 2008-10-13 Jürg Billeter <j@bitron.ch>
1971 * giscanner/ast.py: add signed integer and off_t to type_names
1973 2008-10-12 Jürg Billeter <j@bitron.ch>
1975 * giscanner/girparser.py: Parse bits attribute of fields
1977 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
1979 * tests/repository/Makefile.am: run 'gitestrepo' in 'make check'
1980 * tests/repository/gitestrepo.c (main): instantiate
1981 'GCancellable' to ensure the GType is registered before using
1984 2008-10-12 Johan Bilien <jobi@via.ecp.fr>
1986 * giscanner/girparser.py: actually add the parsed constant nodes
1988 2008-10-12 Colin Walters <walters@verbum.org>
1990 * girepository/girepository.c: Don't cast DirEntry to Blob,
1991 actually look it up by offset.
1993 2008-10-12 Johan Bilien <jobi@via.ecp.fr>
1995 * giscanner/girparser.py: parse constant nodes in gir files
1997 2008-10-12 Johan Bilien <jobi@via.ecp.fr>
1999 * giscanner/transformer.py: prefix for constants have an underscore,
2000 so remove them as if they were functions, not objects.
2002 2008-10-12 Johan Bilien <jobi@via.ecp.fr>
2004 * tests/scanner/foo-1.0-expected.gir: add constants to expected gir
2007 2008-10-12 Colin Walters <walters@verbum.org>
2009 Initial patch from Jani Monoses.
2011 * girepository/gtypelib.c: Fix inverted test for success
2014 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
2016 * tools/generate.c (write_callable_info): use "transfer-ownership"
2017 attribute for return values
2019 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
2021 * tools/generate.c (write_callable_info): move "transfer" and
2022 "null-ok" attributes from <function> to <return-value> element
2024 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
2026 * girepository/girparser.c (start_return_value): handle
2027 "transfer-ownership" attribute
2029 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
2031 * girepository/girparser.c (parse_param_transfer):
2032 * tools/generate.c (write_callable_info): use "container" for
2033 container/shallow ownership transfer (not "shallow")
2035 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
2037 * girepository/girparser.c (parse_param_transfer,
2038 start_parameter): Refactor handling of transfer=none/shallow/full
2039 to separate function
2041 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
2043 Bug 556048 – Crash in g_irepository_find_by_gtype
2045 * girepository/gtypelib.h (BLOB_IS_REGISTERED_TYPE): added
2046 * girepository/girepository.c (find_interface): Fix
2047 find_by_gtype case to get the type name from right offset
2049 2008-10-12 Jürg Billeter <j@bitron.ch>
2051 * giscanner/girparser.py: Fix parsing transfer-ownership attribute
2054 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
2056 * girepository/gtypelib.h (RegisteredTypeBlob): make
2057 'unregistered' one bit wide as everywhere else
2059 2008-10-12 Jürg Billeter <j@bitron.ch>
2061 * giscanner/glibtransformer.py:
2062 * tests/scanner/annotation-1.0-expected.gir:
2063 * tests/scanner/drawable-1.0-expected.gir:
2064 * tests/scanner/drawable.h:
2065 * tests/scanner/foo-1.0-expected.gir:
2066 * tests/scanner/utility-1.0-expected.gir:
2068 Readd class records as workaround to not break Gtk typelib
2070 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
2072 * tests/types/Makefile.am: fix typo in gitesttypes namespace
2074 2008-10-12 Jürg Billeter <j@bitron.ch>
2076 * giscanner/glibtransformer.py: Don't generate <record> elements
2078 * tests/scanner/*: Update test cases
2080 2008-10-11 Colin Walters <walters@verbum.org>
2082 Bug 552858: versioning
2084 This is a big patch. You should probably remove your installation
2087 * docs/typelib-format.txt: Add nsversion entry which holds
2088 version of namespace.
2089 * girepository/girepository.h: Add 'version' parameter to
2090 g_irepository_require. This may be NULL. Normally
2091 bindings should pass an explicit version though.
2092 * girepository/girepository.c: Lots of infrastructure to
2093 support versioning. Add some more documentation. Disallow
2094 some usage of NULL namespaces.
2095 * girepository/girmodule.c: Add version parameter.
2096 * girepository/gtypelib.c: Update header size.
2097 * giscanner/ast.py: Add version to Namespace.
2098 * giscanner/girparser.py: Parse version attribute from
2099 XML, pass to Namespace.
2100 * giscanner/girwriter.py: Write out version parameter.
2101 * giscanner/transformer.py: Clean up include registration.
2102 * tests/*: Add version attribute.
2103 * tests/invoke/invoke.c: Don't try looking up test before
2104 it's loaded in repository.
2105 * tools/generate.c: Output version parameter.
2106 * gir/Makefile.am: Add 2.0 version to .gir files.
2108 2008-10-11 Colin Walters <walters@verbum.org>
2110 * giscanner/scannerlexer.l (parse_gtkdoc): Don't lose
2111 if we have mismatched parens.
2113 2008-10-11 Lucas Rocha <lucasr@gnome.org>
2115 * giscanner/girparser.py (_parse_enumeration_bitfield): fix typo
2116 on 'members' variable.
2118 2008-10-11 Colin Walters <walters@verbum.org>
2120 Bug 555947 - update annotations syntax
2122 * giscanner/ast.py: Default to None for transfer. Remove
2123 default transfers for container types; we require this to
2125 * giscanner/girwriter.py: Transfer is now 'none', 'container',
2126 'full' to match repository.
2127 * giscanner/scannerlexer.l: Annotations now are parenthesized.
2128 * giscanner/transformer.py: Update for new annotations syntax.
2131 2008-10-11 Johan Bilien <jobi@litl.com>
2133 * giscanner/scannerparser.y: ignore non-UTF-8 string constants
2135 2008-10-11 Johan Bilien <jobi@litl.com>
2137 Bug 552347: Parse #defines constants
2139 * girepository/gtypelib.c: update the list of value_size
2140 with recently defined type tags
2141 * giscanner/scannerparser.y: brought back parsing of #defined, as
2142 present in older version
2143 * giscanner/giscannermodule.c: bind gi_source_scanner_append_filename
2144 * giscanner/girwriter.py: write out constant tags in the gir
2145 * giscanner/sourcescanner.py: add accessor for const_string
2146 * giscanner/transformer.py, giscanner/glibtransformer.py: handle
2149 2008-10-11 Tommi Komulainen <tommi.komulainen@iki.fi>
2151 Bug 555946: Install a test module exercising all types, transfer
2156 * tests/types/*: Add and install a test module that has functions
2157 accepting and returning most of the basic types to enable bindings
2158 implementors to more easily test their type conversion routines.
2160 2008-10-11 Jürg Billeter <j@bitron.ch>
2162 Bug 552374: Const strings should be identified in the gir.
2164 * giscanner/transformer.py: support string memory management
2165 * tests/scanner/foo.h: use char * and const char *
2166 * tests/scanner/foo-expected.gir: test that
2168 2008-10-11 Johan Dahlin <johan@gnome.org>
2170 * giscanner/girparser.py:
2171 Also parse enums which are not glib types.
2173 2008-10-11 Lucas Rocha <lucasr@gnome.org>
2175 Bug 552370: add one more test for unsigned as a type, not as
2178 * giscanner/ast.py: add 'uint' type name for 'unsigned'.
2179 * test/scanner/foo.h: add function which uses unsigned as a type.
2180 * test/scanner/foo-expected.gir: test that.
2182 2008-10-11 Andreas Rottmann <a.rottmann@gmx.at>
2184 Bug 555712: Struct and union issues
2186 * giscanner/scannerparser.y (struct_declarator): Use information
2187 provided about the bit width of a field.
2188 * giscanner/transformer.py (Transformer._create_member): Pass the
2189 symbol's const_int member to the created field (it represents the
2191 * giscanner/girwriter.py (GIRWriter._write_field): Output 'bits'
2192 field attribute, if present.
2193 * giscanner/ast.py (Field): Add 'bits' member, specifying the
2194 width in bits of the field (only relevant for bitfields).
2197 * giscanner/transformer.py (Transformer._create_typedef_struct)
2198 (Transformer._create_typedef_union): Add calls to _create_struct()
2199 and _create_union(), respectively. This causes the scanner to
2200 generate output for fields of struct and union typedefs.
2203 2008-10-11 Jürg Billeter <j@bitron.ch>
2205 Bug 552370: unsigned not scanned properly
2207 * giscanner/scannerparser.y: combine basic types such as unsigned
2208 int and long long when scanning
2209 * tests/scanner/foo-expected.gir:
2210 * tests/scanner/foo.c: (foo_test_unsigned):
2211 * tests/scanner/foo.h: test that
2213 2008-10-11 Lucas Rocha <lucasr@gnome.org>
2215 Bug 554854: The --typelib-xml and --inject options should reuse
2216 giscanner parser/writer.
2218 * giscanner/ast.py: add constructor list to Struct and Union.
2219 Add new param in Return's contructor to define transfer.
2220 * giscanner/girparser.py: several additions to the parser in order
2221 to have parsing all nodes of the gir xml files.
2222 * tools/g-ir-scanner (typelib_xml_strip, inject): use gir parser
2223 and writer in --inject and --typelib-xml options.
2224 * giscanner/xmlwriter.py: ignore empty attributes instead of
2225 raising an error as this basically exposes a bug in GIRParser.
2226 This should be reverted as soon as the parser is fixed.
2228 2008-10-11 Lucas Rocha <lucasr@gnome.org>
2230 Bug 552376: scanner generates wrong names for enum members when
2231 there's no defined gtype.
2233 * giscanner/utils.py (strip_common_prefix): Always strip common
2234 prefix exactly up to the last "_", and not beyond.
2235 * tests/scanner/foo.h (FooEnumNoType): add FOO_ENUM_NEUF. The point
2236 here is that the first character after the last '_' should should be
2237 the same as the character in the same position on the type name.
2238 * tests/scanner/foo-expected.gir: test that
2240 2008-10-10 Lucas Rocha <lucasr@gnome.org>
2242 Bug 555293: append library_paths to LPATH env variable to work
2243 around a bug in find_library when using ldconfig.
2245 * tools/g-ir-scanner (main): ditto.
2247 2008-10-09 Lucas Rocha <lucasr@gnome.org>
2249 * girepository/girepository.c (register_internal): fix regression on
2250 invoke test case by making sure we load the global module in the
2251 typelib when dealing with inline typelibs.
2252 * girepository/gtypelib.c: a couple of coding style fixes.
2254 2008-10-06 Lucas Rocha <lucasr@gnome.org>
2256 Bug 555294: Add support for multiple shared libraries per typelib.
2258 * girepository/ginvoke.c (g_function_info_invoke),
2259 girepository/ginfo.c(g_registered_type_info_get_g_type): use
2260 g_typelib_symbol instead of g_module_symbol.
2261 * girepository/girepository.h: remove g_typelib_set_module and add
2263 * girepository/gtypelib.[ch] (find_some_symbol, _g_typelib_init,
2264 g_typelib_new_from_memory, g_typelib_new_from_const_memory,
2265 g_typelib_free, g_typelib_symbol): chnage GTypeLib to hold a list of
2266 modules instead of just one. The symbol lookup is now abstracted
2267 behind g_typelib_symbol which tries to find the passed symbol name in
2269 * giscanner/girwriter.py, tools/g-ir-scanner: change scanner to read
2270 and write shared_library attribute as a comma-separated list of libs.
2272 2008-10-06 Colin Walters <walters@verbum.org>
2274 * giscanner/transformer.py: Parse length= annotation as
2275 a parameter name, not a raw int.
2278 2008-10-03 Colin Walters <walters@verbum.org>
2280 Bug 551744: Non-GObject types aren't aggregating ctors and methods
2282 * girepository/gtypelib.c: Allow ctors/methods on struct,union,
2284 * giscanner/glibtransformer.py: Ditto, and GLibBoxed is also a
2288 2008-10-03 Colin Walters <walters@verbum.org>
2290 Bug 554576: scan problem with ev_selection_render_selection()
2292 * giscanner/transformer.py: Only do type resolution once we've
2293 scanned all types. What could happen before is that we'd strip
2294 the namespace from local type "EvSelection" => Selection, and
2295 then later pull a "Selection" from some other namespace because
2296 we hadn't yet seen the local EvSelection. This could come
2297 down to hash table ordering and other things so not easy
2298 to write a test for.
2300 2008-10-03 Lucas Rocha <lucasr@gnome.org>
2302 * giscanner/girwriter.py (_parser_member): fix the last parameter of
2303 GLibEnumMember constructor as it should be the enum member nick.
2305 2008-10-02 Colin Walters <walters@verbum.org>
2307 Bug 552961: remove this parameter for methods
2309 * giscanner/glibtransformer.py: Delete this parameter; it is
2311 * girepository/ginvoke.c: Insert this parameter for methods.
2312 * girepository/gtypelib.c: Remove no longer needed verification of
2313 method this parameter.
2316 2008-09-30 Dan Winship <danw@gnome.org>
2318 Bug 554490: g-ir-scanner gets confused by '\\'
2320 * giscanner/scannerlexer.l (chartext, stringtext): fix use of
2321 backslashes so it will correctly parse '\\' and "\\"
2323 * tests/scanner/annotation.c: add a use of '\\' to make sure that
2326 * giscanner/glibtransformer.py (GLibTransformer.count_type): typo
2328 2008-10-02 Colin Walters <walters@verbum.org>
2330 bug 552393: Note variadic functions
2332 * giscanner/scannerparser.y: Parse ellipsis. Refactor grammar
2333 to use parameter_list directly.
2334 * giscanner/sourcescanner.h: Add ellipsis csymbol type.
2335 * giscanner/ast.py: Add Varargs type.
2336 * giscanner/transformer.py: Check for ellipsis symbol, transform
2338 * girepository/girnode.h: Add varargs flag to in-memory nodes.
2339 Parse varargs functions, but filter them out before we start
2340 compiling the typelib.
2342 2008-10-02 Colin Walters <walters@verbum.org>
2344 Bug 554632: type tag for GType
2346 * girepository/girepository.h, girepository/girepository.c:
2347 Add type tag for GType - it's a special type we don't want
2348 to resolve to just "long".
2349 * docs/typelib-format.txt: Update.
2350 * girepository/girparser.c: Parse it.
2351 * giscanner/glibtransformer.py: Ensure we don't put GType in
2353 * tools/generate.c: Remove hardcoded type list.
2356 2008-09-30 Dan Winship <danw@gnome.org>
2358 Bug 554521: scanner generates wrong names for enum members with
2359 full type name prefix
2361 * giscanner/utils.py (strip_common_prefix): Fix this to strip the
2362 right amount when the entire "first" string is a prefix of
2365 * tests/scanner/foo.h (FooEnumFullname):
2366 * tests/scanner/foo-expected.gir: test that
2368 2008-09-29 Colin Walters <walters@verbum.org>
2370 Bug 552380: Array parameters should be marked in the gir
2372 * giscanner/ast.py: Default char** to utf8[], and guchar* to
2373 uint8[]. Add Array, List, and Map subclasses of Type;
2374 these types can be generic. Return transfer defaults
2375 to true if return value is string or container type.
2376 Delete Sequence type.
2377 * giscanner/scannerlexer.l: Syntax change for annotations;
2378 use <> since it's more readable.
2379 * giscanner/girwriter.py: Write out these changes.
2380 * giscanner/girparser.py: Parse them.
2381 * giscanner/transformer.py: Have a defined set of
2382 both list and map types. When creating a type,
2383 check if the ctype we've parsed is one of them,
2384 if so create a container type subclass as appropriate.
2385 * girepository/girparser.c: Parse in generic types.
2388 2008-09-27 Colin Walters <walters@verbum.org>
2390 * tools/g-ir-scanner: Add --inject option.
2392 2008-09-25 Colin Walters <walters@verbum.org>
2394 Remove non-repository types from GIR
2396 * giscanner/ast.py: The canonical name is 'utf8', not
2398 * giscanner/glibast.py: A few more glib type mappings.
2399 * girepository/girparser.c: We only parse repository types.
2400 * tests/*.gir: Update.
2402 2008-09-23 Colin Walters <walters@verbum.org>
2404 Bug 552566: Add time_t type
2406 We need a type for time_t since it's special in C, and just
2407 mapping it to long precluded bindings from handling it
2410 2008-09-19 Colin Walters <walters@verbum.org>
2412 Bug 552390: Handle capitialization like "DBus" more robustly
2414 The to_underscores function was designed for use against prefixed
2415 names; we need a separate function which will convert names like
2416 DBusFoo into dbus_foo, not d_bus_foo.
2418 2008-09-19 Colin Walters <walters@verbum.org>
2420 Add check to make sure we're not hitting out unresolved types
2422 Validate the "this" argument for methods
2424 Remove heuristic matching of methods to classes based on prefix
2426 It was a broken hack that dated from when we handled underscoring
2427 and capitalization conventions less well.
2429 2008-09-18 Colin Walters <walters@verbum.org>
2431 Bug 552384: Use SHLIB_SUFFIX intead of G_MODULE_SUFFIX for Darwin
2433 On Darwin, the suffix for installed shared libraries (.dylib) is
2434 different from loadable modules (.so). We use a bit of magic shell
2435 script from Behdad Esfahbod to figure out the right suffix.
2437 2008-09-15 Johan Dahlin <johan@gnome.org>
2439 * giscanner/sourcescanner.py (SourceType.type_qualifier): Add
2440 a wrapper for type_qualifier as well.
2442 2008-09-15 Colin Walters <walters@verbum.org>
2444 http://bugzilla.gnome.org/show_bug.cgi?id=552065
2446 * giscanner/ast.py: Add deprecation attributes.
2447 * giscanner/girwriter.py: Write out deprecation data.
2448 * girepository/girparser.c: Relax parsing; deprecated
2449 attribute now includes freeform string.
2450 * giscanner/scannerlexer.l: Parse Deprecated.
2451 * giscanner/transformer.py: Look for deprecated attribute
2453 * tests/scanner/*: Add a Deprecated test.
2455 2008-09-14 Tor Lillqvist <tml@novell.com>
2457 * tests/scanner/Makefile.am (%.typelib): Use $(EXEEXT).
2459 2008-09-14 Colin Walters <walters@verbum.org>
2461 * giscanner/glibtransformer.py: Ignore functions with
2464 2008-09-12 Colin Walters <walters@verbum.org>
2466 * giscanner/glibtransformer.py: Accept Gtk.Type as GType.
2468 2008-09-12 Colin Walters <walters@verbum.org>
2470 * giscanner/ast.py: Bind pid_t to INT for vte.
2472 2008-09-12 Colin Walters <walters@verbum.org>
2474 * giscanner/girparser.py: Parse c:type for boxed records/unions.
2475 * giscanner/glibast.py: Avoid overwriting ctype.
2476 * giscsanner/transformer.py: Try resolving types using the GType names.
2478 2008-09-12 Colin Walters <walters@verbum.org>
2480 * giscanner/minixpath.py: Code to run an "XPath"
2481 assertion against an XML tree, taken from
2482 gir-repository/gir/tests.py.
2483 * giscanner/Makefile.am: Ship it.
2484 * tools/g-ir-scanner: Add --xpath-assertions option.
2485 * gir/GLib-assertions.txt: Add a few assertions.
2486 * gir/Makefile.am: Run them.
2488 2008-09-11 Colin Walters <walters@verbum.org>
2490 http://bugzilla.gnome.org/show_bug.cgi?id=551737
2492 * giscanner/transformer.py: Fix strip_namespace_func to only strip
2493 prefix if it ends with _. Tweak callback stripping to determine
2494 based on presence of _ whether we need to use strip_namespace_func
2495 or strip_namespace_object.
2497 2008-09-09 Owen Taylor <otaylor@redhat.com>
2499 * docs/typelib-format.txt: Wether => Whether
2501 2008-09-08 Colin Walters <walters@verbum.org>
2503 * girepository/girparser.c: Default to "readable" for properties.
2504 * giscanner/ast.py: Add readable, writable etc.
2505 * giscanner/girwriter.py: Writ them.
2506 * giscanner/glibtransformer.py: Inspect them.
2509 2008-09-07 Colin Walters <walters@verbum.org>
2511 * giscanner/cgobject.py: Add comment.
2513 2008-09-07 Colin Walters <walters@verbum.org>
2515 * giscanner/cgobject.py: Also call g_thread_init.
2517 2008-09-07 Colin Walters <walters@verbum.org>
2519 * giscanner/transformer.py: Fix regression by not
2520 stripping prefix before stripping namespace for unions
2523 2008-09-06 Colin Walters <walters@verbum.org>
2525 * giscanner/transformer.py: If a namespace contains
2526 multiple caps, try stripping both gnomekeyring_ and
2529 2008-09-07 Johan Dahlin <johan@gnome.org>
2531 Bug 551162 – giscanner does not recognize asm and __asm__
2532 * giscanner/scannerlexer.l:
2533 Patch by Jani Monoses.
2535 2008-09-06 Colin Walters <walters@verbum.org>
2537 * girepository/girnode.c: Allow gtype_name
2538 and gtype_init in struct and union.
2539 * girepository/girparser.c: Parse glib:
2540 boxed bits for both structure and union.
2541 * girepository/gtypelib.c: Don't barf
2542 if structure is boxed.
2543 * giscanner/girparser.py: Parse new XML
2545 * giscanner/girwriter.py: Write out new
2547 * giscanner/glibast.py: Define new classes
2548 which are both Boxed and Struct/Union, as
2549 well as an "Other" for everything else.
2550 * giscanner/glibtransformer.py: Handle
2551 boxed types specially; we try to merge
2552 them with a struct/union if one exists,
2553 otherwise fall back to generic boxed.
2555 * tools/generate.c: Write out new format.
2557 2008-09-06 Johan Dahlin <johan@gnome.org>
2559 * giscanner/grealpath.h: Include stdlib.h
2561 * docs/g-ir-generate.1: Remove leading %
2563 2008-09-01 Colin Walters <walters@verbum.org>
2565 * girepository/girparser.c: Look at c:type to determine
2566 whether or not an item is a pointer.
2568 2008-09-01 Johan Dahlin <johan@gnome.org>
2570 * tests/scanner/Makefile.am:
2571 Set PYTHONPATH so the scanner can run
2572 even if you didn't install anything.
2574 2008-09-01 Johan Dahlin <johan@gnome.org>
2577 Post-release version bump
2580 2008-09-01 Johan Dahlin <johan@gnome.org>
2584 2008-08-31 Colin Walters <walters@verbum.org>
2586 * giscanner/glibtransformer.py: Quiet info
2589 2008-08-31 Johan Dahlin <johan@gnome.org>
2592 Bump version to 0.5.0
2594 2008-08-31 Colin Walters <walters@verbum.org>
2596 * giscanner/glibtransformer.py: Follow aliases to ensure
2597 we don't get a constructor returning a basic type.
2598 * giscanner/transformer.py: Add function to follow aliases.
2601 2008-08-31 Johan Dahlin <johan@gnome.org>
2603 * giscanner/scannerlexer.l:
2604 * giscanner/scannerparser.y:
2605 * giscanner/sourcescanner.h:
2606 * giscanner/sourcescanner.py:
2607 Parse GCC extensions in the parser instead of just undeffing them
2608 in the pre-processor.
2610 2008-08-31 Johan Dahlin <johan@gnome.org>
2612 * giscanner/glibtransformer.py:
2613 Clean up a huge if. Do not add methods or constructors
2615 * giscanner/utils.py:
2616 second might be longer than first, check that.
2618 2008-08-31 Johan Dahlin <johan@gnome.org>
2623 2008-08-31 Colin Walters <walters@verbum.org>
2625 * girepository/girparser.c: Don't lose if we
2628 2008-08-31 Colin Walters <walters@verbum.org>
2630 * giscanner/glibtransformer.py: Look for libtool
2631 library in current directory
2632 * tests/scanner - Update.
2634 2008-08-30 Colin Walters <walters@verbum.org>
2636 * docs/typelib-format.txt: Add a guint32
2638 * gir/Makefile.am: Dep on Makefile
2639 * girepository/ginfo.c:
2640 * girepository/girepository.c: Clean up
2641 default typelib handling; remove global
2642 default_typelib variable. Ensure we handle
2643 NULL repository in more places.
2644 Support dependency resolution.
2645 Support lazy loading.
2646 * girepository/girepository.h: Remove
2647 g_irepository_unregister; we don't support
2648 unloading typelibs since really they're
2649 process-global. Update for lazy loading
2651 * girepository/girmodule.c: Use g_new0.
2652 Add dependencies to GirModule.
2653 * girepository/girparser.c: Parse dependencies.
2654 * girepository/gtypelib.c: Add 4 bytes for
2656 * tests/Makefile.am: Kill off gobject.gir,
2657 it conflicts with the real one.
2658 * tests/object.gir: Dep on GObject.
2659 * tools/generate.c: Take --includedir
2660 argument to say which directories to search
2661 for typelibs. Print out dependencies.
2663 2008-08-30 Colin Walters <walters@verbum.org>
2665 * giscanner/glibtransformer.py: Reduce warning noise.
2667 2008-08-29 Colin Walters <walters@verbum.org>
2669 * girepository/ginfo.c: Add some assertions regarding
2670 refcounts, just to be sure.
2671 * giscanner/glibtransformer.py: Blacklist a few more
2674 2008-08-29 Colin Walters <walters@verbum.org>
2676 * giscanner/glibtransformer.py: Blacklist a few
2677 functions that use GError oddly
2679 2008-08-29 Colin Walters <walters@verbum.org>
2681 * girepository/gtypelib.c: Don't crash if no
2684 2008-08-29 Colin Walters <walters@verbum.org>
2686 * girepository/girparser.c: Handle chains of aliases
2687 across modules by ensuring we fully qualify aliases
2690 2008-08-29 Colin Walters <walters@verbum.org>
2692 * girepository/girparser.c: Don't search aliases
2695 2008-08-29 Colin Walters <walters@verbum.org>
2697 * girepository/girparser.c: Rewrite type parsing
2698 to handle both GLib parsing case as well as correctly
2699 handling GLib.List and friends. Don't try to treat
2700 e.g. ListStore as a List.
2702 2008-08-29 Colin Walters <walters@verbum.org>
2704 * girepository/gtypelib.c: Add more context
2707 2008-08-29 Colin Walters <walters@verbum.org>
2709 * giscanner/glibtransformer.py: Add some informative
2710 logging messages in corner cases. Be sure we use
2711 the most recent node set instead of a cache
2712 when generating result set.
2713 * tests/: Remove duplicated bits in expected girs
2714 * girepository/girparser.c: Accept both List (for
2715 compiling GLib) and GLib.List (what the scanner
2718 * tools/generate.c: Generate canonical form.
2720 2008-08-29 Johan Dahlin <johan@gnome.org>
2722 * giscanner/config.py.in:
2723 Use datarootdir instead of datadir to avoid
2724 an autoconf warning.
2726 2008-08-29 Johan Dahlin <johan@gnome.org>
2730 * examples/gdk-pixbuf.gidl:
2732 Update and remove old cruft.
2734 2008-08-29 Johan Dahlin <johan@gnome.org>
2737 * docs/g-ir-compiler.1:
2738 * docs/g-ir-generate.1:
2739 * docs/g-ir-scanner.1:
2740 Add man pages for the generator and compiler.
2742 2008-08-29 Johan Dahlin <johan@gnome.org>
2744 * docs/g-ir-scanner.1: Document
2746 * giscanner/Makefile.am:
2747 * giscanner/gidlparser.py:
2748 * giscanner/gidlwriter.py:
2749 * tools/g-ir-scanner:
2750 Remove gidl support.
2752 2008-08-28 Colin Walters <walters@verbum.org>
2754 * tests/scanner/Makefile.am: Pass the right
2755 --includedir args. Add a Makefile dep.
2756 * tools/compiler.c: Pass includedirs down.
2757 * girepository/girparser.c: Actually put
2758 includedirs in context, pass down. Fix
2761 2008-08-28 Colin Walters <walters@verbum.org>
2763 * gir/Makefile.am: Use --includedir
2764 * girepository/girparser.c: Recursively parse
2765 includes to pull in aliases and expand them.
2766 We need this to avoid putting unknown names in
2768 * tools/compiler.c: Add --includedir option.
2769 * giscanner/ast.py: Map size/ssize to types
2772 2008-08-28 Tor Lillqvist <tml@novell.com>
2774 Make check now runs successfully on Windows.
2776 * tools/compiler.c (write_out_typelib): Use binary mode for output
2779 * girepository/girnode.c: Don't print NULL strings.
2781 * tests/invoke/Makefile.am
2782 * tests/scanner/Makefile.am: Use -no-undefined on Windows to
2783 convince libtool to build shared libraries.
2785 * tests/invoke/invoke.c: Don't needlessly include <dlfcn.h>. Use
2786 g_assert() instead of printing out expected errors.
2788 2008-08-28 Tor Lillqvist <tml@novell.com>
2790 * girepository/gtypelib.h: Change type of bitfield fields from
2791 guint to the most suitable smaller type. This makes the struct
2792 sizes match the ones on Linux that the sanity check expects when
2793 using gcc -mms-bitfields on Windows.
2795 2008-08-28 Johan Dahlin <johan@gnome.org>
2800 * giscanner/Makefile.am:
2801 * tests/Makefile.am:
2802 * tests/scanner/Makefile.am:
2803 Make distcheck pass.
2805 2008-08-27 Johan Dahlin <johan@gnome.org>
2807 * giscanner/Makefile.am:
2808 Only send in -no-undefined on Win32 as it breaks on MacOS X.
2810 2008-08-27 Tor Lillqvist <tml@novell.com>
2812 Make g-ir-scanner work on Windows. Still problems with the typelib
2813 code. Changes okayed by jdahlin.
2815 * configure.ac: Check for Windows, set Automake conditional
2816 OS_WIN32. Change backslashes to forward slashes in pyexecdir to
2817 avoid shell quoting issues
2819 * girepository/Makefile.am: Use -no-undefined so that libtool
2820 agrees to build a shared library on Windows.
2822 * girepository/girparser.c (backtrace_stderr): No backtrace() on
2823 Windows. Empty implementation on Windows so far.
2825 * girepository/gtypelib.c (g_typelib_check_sanity): Give more
2826 informative error message for the assertion failures. Tell also
2827 what the expected size of the struct is. Check all sizes first and
2828 fail afterwards if at least one size was different from expected.
2830 * tools/Makefile.am: Reorder libraries into proper logical
2833 * tools/generate.c: Don't include <dlfcn.h>, not used.
2835 * giscanner/Makefile.am: On Windows, link with the Python library,
2836 and install the module DLL as _giscanner.pyd. Remove the
2837 unnecessary import library and libtool library that libtool has
2840 * giscanner/scannerlexer.l: Recognize the gcc __attribute__ syntax
2841 and just skip it. Recognize also two "l" suffixes for long long
2842 constants. Recognize also __inline__.
2844 * giscanner/grealpath.h (g_realpath): Implement on Windows, using
2845 GetFullPathName(). As such, GetFullPathName() does more than the
2846 UNIX realpath(). It also changes relative paths into absolute
2847 paths. But for our purposes that shouldn't matter.
2849 * giscanner/giscannermodule.c (pygi_source_scanner_parse_file): On
2850 Windows the file descriptor passed to us is from Python. Python
2851 Python2.5 uses the msvcr71.dll C library, while mingw-built code
2852 uses msvcrt.dll. On Windows, file descriptors are specific to
2853 which C library is used. So we must find out what underlying OS
2854 handle corresponds to the file descriptor Python passes us, and
2855 then make that into a file descriptor valid for the C library this
2858 * giscanner/sourcescanner.py (_parse): Don't need to bypass
2859 __attribute__ as the lexer now handles it. The definition as empty
2860 was ineffective for mingw anyway, as mingw's _mingw.h undefines
2861 __attribute__. Close the temp file before unlinking it.
2863 * giscanner/cgobject.py: Use correct library name for the gobject
2866 * gir/Makefile.am: Must pass the full basename of the DLLs on
2867 Windows to g-ir-scanner. It's a bit ugly that we have to "know"
2868 that the names of the GLib DLLs are like libglib-2.0-0.dll, but in
2869 reality they won't change, until there is a GLib 3, and then also
2870 the Unix code here needs changing.
2872 Must pass CPPFLAGS to g-ir-scanner when building GLib.gir so that
2875 2008-08-26 Colin Walters <walters@verbum.org>
2877 * girepository/girepository.c: Search
2878 $DATADIR/girepository instead of
2879 $DATADIR/gitypelibs; this naming makes
2880 it clearer that e.g. jgir can install
2882 * gir/Makefile.am: Install there.
2884 2008-08-26 Colin Walters <walters@verbum.org>
2886 * girepository/gtypelib.c (_g_typelib_init): Also
2887 use G_MODULE_SUFFIX instead of hardcoding .so.
2889 2008-08-26 Colin Walters <walters@verbum.org>
2891 * girepository/gtypelib.c (_g_typelib_init): Free
2892 string in the right place.
2894 2008-08-26 Colin Walters <walters@verbum.org>
2896 * girepository/gtypelib.c (_g_typelib_init): Handle
2897 both .la and .so names; this works better in the
2898 uninstalled library case.
2900 2008-08-26 Johan Dahlin <johan@gnome.org>
2903 * giscanner/Makefile.am:
2904 * giscanner/cgobject.py:
2905 * giscanner/config.py.in:
2906 * giscanner/sourcescanner.py:
2907 Avoid undeffing __GNUC__, instead define
2908 __attribute__ & friends. Remove glibconfig.h hack.
2909 This makes gobject-introspection work better on
2910 MacOS X, Thanks to Richard Hult for kind help.
2912 2008-08-25 Colin Walters <walters@verbum.org>
2914 * giscanner/glibtransformer.py: Always print
2917 2008-08-25 Colin Walters <walters@verbum.org>
2919 * giscanner/glibtransformer.py: Skip over
2920 interfaces we don't know.
2922 2008-08-25 Colin Walters <walters@verbum.org>
2924 * girepository/girparser.c: Parse new implements
2925 syntax, drop gapi one.
2926 * tests/object.gir: Update.
2927 * tools/generate.c: Generate new syntax.
2929 2008-08-25 Colin Walters <walters@verbum.org>
2931 * giscanner/ast.py: Add interfaces property
2933 * giscanner/girwriter.py: Write out implemented
2935 * giscanner/glibtransformer.py: Introspect
2936 implemented interfaces.
2937 * tests/scanner/*: Make FooObject implement
2940 2008-08-25 Colin Walters <walters@verbum.org>
2942 * giscanner/glibtransformer.py: More correctly pair
2943 methods; if we have a symbol that starts with
2944 e.g. hippo_canvas look for a matching HippoCanvas
2945 class before accepting e.g. HippoCanvasImage.
2947 2008-08-24 Colin Walters <walters@verbum.org>
2949 * tools/g-ir-scanner: Filter out unknown options from
2952 2008-08-24 Colin Walters <walters@verbum.org>
2954 * giscanner/glibtransformer.py: Fail with better
2955 error if we can't find library.
2957 2008-08-24 Colin Walters <walters@verbum.org>
2959 * tools/g-ir-scanner: Use subprocess instead of
2960 commands, works on Windows and avoids the evil
2963 2008-08-24 Colin Walters <walters@verbum.org>
2965 * giscanner/glibtransformer.py: Skip over
2966 g_object_get_type from GLib trunk.
2968 2008-08-24 Colin Walters <walters@verbum.org>
2970 * girepository/girepository.c (g_irepository_require):
2971 Don't open shared library here; we already do it
2974 2008-08-24 Colin Walters <walters@verbum.org>
2976 * girepository/gtypelib.c: Add context stack so
2977 when we get an error we can print out nicely
2980 2008-08-24 Johan Dahlin <johan@gnome.org>
2982 * girepository/girparser.c (start_glib_boxed), (start_function),
2983 (start_field), (start_alias):
2984 Refactor a couple of parsing functions to be simpler to follow.
2987 2008-08-24 Johan Dahlin <johan@gnome.org>
2989 * girepository/girparser.c (start_function):
2990 Remove left-over code, checking type of function.
2992 2008-08-23 Colin Walters <walters@verbum.org>
2994 * giscanner/config.py: Define DATADIR.
2995 * giscanner/transformer.py: Look in DATADIR.
2997 2008-08-23 Colin Walters <walters@verbum.org>
2999 * girepository/gtypelib.c: Check constructor
3001 * girepository/girnode.c: Small tweaks.
3002 * girepository/ginfo.c: Calculate signature offsets
3004 * girepository/girparser.c: Remove duplicate
3006 * giscanner/glibtransformer.py: Avoid marking
3007 functions which return a basic type as
3010 2008-08-23 Colin Walters <walters@verbum.org>
3012 * girepository/girparser.c: Ignore <include>.
3013 * giscanner/girparser.py: Parse them.
3014 * giscanner/girwriter.py: Generate them.
3015 * giscanner/transformer.py: Process <include>
3016 recursively. Don't require full path for
3017 includes, look in {$XDG_DATA_DIRS}/gir.
3018 * tools/g-ir-scanner: Pass through includes.
3019 * Makefile.am: Remove extra --include
3021 * *-expected.gir: Add expected includes.
3023 2008-08-23 Johan Dahlin <johan@gnome.org>
3025 * tests/scanner/Makefile.am:
3026 * tests/scanner/annotation-expected.gir:
3027 * tests/scanner/drawable-expected.gir:
3028 Avoid duplication in the Makefile, regenerate with new
3029 namespaces (same as the filename)
3031 2008-08-22 Colin Walters <walters@verbum.org>
3033 * girepository/girnode.c: Don't hardcode integers,
3036 2008-08-22 Johan Dahlin <johan@gnome.org>
3038 * giscanner/sourcescanner.py:
3039 Check for ../gobject-introspection-1.0.pc.in to determine
3040 if we run installed or uninstalled.
3042 2008-08-22 Johan Dahlin <johan@gnome.org>
3045 * giscanner/sourcescanner.py:
3046 Send in undefs/defines via writing it directly to stdin
3047 of cpp instead of via arguments.
3049 2008-08-22 Colin Walters <walters@verbum.org>
3051 * tools/generate.c, tools/compiler.c: Default
3053 * all Makefile.am: Update.
3055 2008-08-22 Colin Walters <walters@verbum.org>
3057 * girepository/girparser.c: Pass through
3058 recursive types. Avoid overwriting errors.
3059 * giscanner/xmlwriter.py: Always write the
3061 * tests/*.gir: Adjust.
3062 * tests/scanner/Makefile.am: Build typelibs,
3063 and generate XML from those. Once we
3064 have a good diff mechanism...
3065 * tests/scanner/*-expected.gir: Add XML
3067 * tools/g-ir-scanner: Accept --typelib-xml
3069 * tools/generate.c: Better defaults for transfer.
3071 2008-08-22 Johan Dahlin <johan@gnome.org>
3075 * giscanner/Makefile.am:
3076 * giscanner/config.py.in:
3077 * giscanner/sourcescanner.py:
3078 Use the generated glibconfig.h for all scanner invokations.
3079 Rename it to glibconfig-scanner.h and install it.
3080 Add a config.py which so far contains the include dir.
3082 2008-08-22 Johan Dahlin <johan@gnome.org>
3085 Replace glibconfig.h with our own, do some replacement
3086 for CPP/C features we do not support
3088 2008-08-22 Colin Walters <walters@verbum.org>
3090 * tools/generate.c (write_callable_info): Fix unref
3093 2008-08-22 Colin Walters <walters@verbum.org>
3095 * gobject-introspection-1.0.pc.in: Add g-ir-generate.
3096 * tests/Makefile.am: Support $(DEBUG)
3097 * tools/generate.c: Do immediate close tags if no
3100 2008-08-21 Colin Walters <walters@verbum.org>
3102 * tests/scanner/drawable-expected.gir,
3103 * tests/scanner/drawable.c,
3104 * tests/scanner/drawable.h:
3107 2008-08-21 Colin Walters <walters@verbum.org>
3109 * giscanner/glibtransformer.py: Compute prefix
3110 by searching through the symbol for bits
3111 rather than going directly from ctype; this fixes
3114 2008-08-21 Colin Walters <walters@verbum.org>
3116 * giscanner/glibtransformer.py: Also try squashing
3117 underscores from namespace, fixes webkit_web_view_new.
3119 2008-08-21 Colin Walters <walters@verbum.org>
3121 * giscanner/glibtransformer.py: More ctor work,
3122 avoid having gtk_window_group_new end up under
3125 2008-08-21 Colin Walters <walters@verbum.org>
3127 * giscanner/glibtransformer.py: Much simpler approach
3128 of mapping uscored names to classes.
3129 * giscanner/utils.py: Remove unnecessary function.
3131 2008-08-21 Johan Dahlin <johan@gnome.org>
3133 * girepository/girepository.c (g_irepository_require):
3134 Plug memory leak and avoid using freed memory.
3135 Resolve the whole module path, here as well.
3137 2008-08-21 Colin Walters <walters@verbum.org>
3139 * giscanner/glibtransformer.py: Look up all permutations
3140 of class names when scanning methods/ctors based on
3141 the prefix instead of using the return value. This
3142 associates gtk_window_new with the right class.
3144 2008-08-21 Colin Walters <walters@verbum.org>
3146 * girepository/girmodule.c (g_ir_module_build_typelib):
3147 Revert change to increment header_size; we do that in
3150 2008-08-21 Colin Walters <walters@verbum.org>
3152 * girepository/girnode.c (write_string): Tweak to
3153 use UINT instead of INT. Not likely to matter.
3154 * girepository/girmodule.c (g_ir_module_build_typelib):
3155 Add to header_offset as well for header strings
3156 to match what write_string does.
3157 * girepository/gtypelib.c: Replace is_name with
3158 validate_name, which more strongly validates and
3159 handles errors in a better way. Update all callers.
3160 * giscanner/glibtransformer.py: Handle constructors
3163 2008-08-21 Johan Dahlin <johan@gnome.org>
3165 * gir/Makefile.am (typelibs_DATA): Build and
3166 install the Gio.typelib too
3168 * girepository/gtypelib.c (_g_typelib_init):
3169 Use g_module_build_path to resolve the shlib name
3171 2008-08-21 Colin Walters <walters@verbum.org>
3173 * gir/Makefile.am: CLEANFILES typelibs too.
3175 2008-08-21 Johan Dahlin <johan@gnome.org>
3177 * giscanner/glibtransformer.py:
3178 Do not send .la files through find_library.
3180 2008-08-21 Colin Walters <walters@verbum.org>
3182 * girepository/girparser.c (g_irepository_require):
3183 Fix one small leak in error case.
3185 2008-08-21 Johan Dahlin <johan@gnome.org>
3188 Parse glibconfig.h as well and install the compiled
3191 2008-08-21 Johan Dahlin <johan@gnome.org>
3194 * giscanner/glibtransformer.py:
3195 * tools/g-ir-scanner:
3196 Do not hard-core library names in the Makefile, reuse
3197 ctypes find_library instead.
3199 2008-08-21 Johan Dahlin <johan@gnome.org>
3201 * girepository/girparser.c (resolve_aliases):
3202 Remove compilation warnings
3204 2008-08-21 Johan Dahlin <johan@gnome.org>
3206 * girepository/girepository.c (g_irepository_require):
3207 Rewrap and fix double free bug by leaking a bit.
3209 2008-08-20 Colin Walters <walters@verbum.org>
3211 * girepository/girepository.c: Add new function
3212 g_irepository_get_typelib_path which tells
3213 us from where we loaded a namespace.
3215 2008-08-20 Colin Walters <walters@verbum.org>
3217 * tests/scanner/*-expected.gir: Adjust for
3218 added shared-library.
3219 * giscanner/giwriter.py: Make pylint happy.
3221 2008-08-20 Colin Walters <walters@verbum.org>
3223 * girepository/girmodule.c (g_ir_module_build_typelib):
3224 Calculate size correctly, avoid use-after-free.
3226 2008-08-20 Colin Walters <walters@verbum.org>
3228 * girepository/girepository.c: Remove
3229 g_irepository_register_file in favor of
3230 g_irepository_require. There are two
3231 possible deployment scenarios for typelibs:
3232 First, separate in $DATADIR/gitypelibs/. Second,
3233 they may be embedded in shlibs. However since
3234 the first is now the normal case, the API is
3235 optimized around it.
3237 Refactor internals to look up typelibs for
3238 namespaces just-in-time, but we expect
3239 consumers to call g_irepository_require.
3241 Also, add some docs. No one has died from that
3243 * gir/Makefile.am: Need --library for glib.
3244 * giscanner/girwriter.py: Write out shared-library.
3245 * tools/g-ir-writer: Take the first --library
3246 argument as the target of shared-library. In
3247 the future we should make this nicer with pkg-config
3250 2008-08-20 Colin Walters <walters@verbum.org>
3252 * girepository/girparser.py: And parse them.
3254 2008-08-20 Johan Dahlin <johan@gnome.org>
3256 * giscanner/glibast.py: Add gshort/gushort types
3258 2008-08-20 Colin Walters <walters@verbum.org>
3260 * gir/Makefile.am: Rename .gir files using GI namespace.
3261 * girepository/girepository.c: Use XDG_DATA_DIRS for
3262 looking up typelibs. Also typelibs are now suffixed
3264 * tests/invoke/Makefile.am: Only use metadata.
3265 * girepository/Makefile.am: Remove unnecessary include.
3266 * tests/scanner/Makefile.am: Update using GI namespaces
3267 for scanner includes.
3269 2008-08-20 Colin Walters <walters@verbum.org>
3271 * girepository/transformer.py: Suppress aliases whose
3273 * girepository/ast.py: Define some more aliases.
3275 2008-08-20 Colin Walters <walters@verbum.org>
3277 * girepository/girparser.c: Avoid alias infloops.
3279 2008-08-20 Colin Walters <walters@verbum.org>
3281 * tests/scanner/foo-expected.gir: Fix expected list type.
3283 2008-08-20 Johan Dahlin <johan@gnome.org>
3285 * giscanner/glibtransformer.py (GLibTransformer._resolve_type_name):
3286 Add a workaround for #548689.
3287 We can now compile gtk!
3289 2008-08-20 Colin Walters <walters@verbum.org>
3291 * giscanner/glibtransformer.py: Try to look up
3292 aliases using the c:type too.
3294 2008-08-20 Colin Walters <walters@verbum.org>
3296 * girepository/girparser.c: Parse union fields.
3298 2008-08-20 Johan Dahlin <johan@gnome.org>
3300 * giscanner/ast.py: Make time_t an alias for long
3302 * gir/gio-2.0-good.gir:
3303 * gir/glib-2.0-good.gir:
3304 * gir/gobject-2.0-good.gir:
3306 * giscanner/glibtransformer.py:
3307 Do not delete Class structures, we need them in gdk/gtk.
3308 * tests/scanner/drawable-expected.gir:
3309 * tests/scanner/foo-expected.gir:
3310 * tests/scanner/utility-expected.gir:
3313 2008-08-20 Johan Dahlin <johan@gnome.org>
3315 * tests/scanner/Makefile.am:
3316 * tests/scanner/annotation-expected.gir:
3317 * tests/scanner/annotation.c (annotation_object_class_init),
3318 (annotation_object_init), (annotation_object_method),
3319 (annotation_object_in), (annotation_object_out),
3320 (annotation_object_inout), (annotation_object_inout2),
3321 (annotation_object_inout3), (annotation_object_calleeowns),
3322 (annotation_object_calleesowns), (annotation_object_get_strings),
3323 (annotation_object_with_voidp), (annotation_object_get_objects),
3324 (annotation_object_create_object), (annotation_object_allow_none):
3325 * tests/scanner/annotation.h:
3326 * tests/scanner/foo-expected.gir:
3327 * tests/scanner/foo.c:
3328 * tests/scanner/foo.h:
3329 Split out annotation tests out of foo
3331 2008-08-20 Johan Dahlin <johan@gnome.org>
3333 * tests/scanner/Foo-expected.gir:
3334 * tests/scanner/Makefile.am:
3335 * tests/scanner/foo-expected.gir:
3336 * tests/scanner/foo-object.h:
3337 * tests/scanner/foo.c:
3338 Foo->foo, foo-object.h -> foo.h
3340 2008-08-20 Johan Dahlin <johan@gnome.org>
3342 * tests/scanner/Foo-expected.gir:
3343 * tests/scanner/Makefile.am:
3344 * tests/scanner/drawable-expected.gir:
3345 * tests/scanner/drawable.c (test_drawable_class_init),
3346 (test_drawable_init):
3347 * tests/scanner/drawable.h:
3348 * tests/scanner/foo-object.h:
3349 * tests/scanner/foo.c (foo_boxed_method):
3350 Move the drawable parts out of Foo to its own test.
3352 2008-08-20 Johan Dahlin <johan@gnome.org>
3354 * tests/scanner/Foo-expected.gir:
3355 * tests/scanner/foo-object.h:
3356 * tests/scanner/foo.c (foo_drawable_class_init),
3357 (foo_drawable_init):
3358 Add a based on GdkDrawable which generates
3361 2008-08-19 Colin Walters <walters@verbum.org>
3363 * giscanner/transformer.py: Don't try
3364 to strip prefix before namespace.
3366 2008-08-19 Johan Dahlin <johan@gnome.org>
3368 * giscanner/transformer.py:
3369 * tests/scanner/Foo-expected.gir:
3370 * tests/scanner/foo-object.h:
3371 Add support for typedef void foo type of
3374 2008-08-19 Johan Dahlin <johan@gnome.org>
3377 * giscanner/girwriter.py:
3378 * giscanner/glibtransformer.py:
3379 * giscanner/transformer.py:
3380 * tests/scanner/Foo-expected.gir:
3381 Add basic support for union, base the code much
3382 on Struct. Add a testcase.
3384 2008-08-19 Johan Dahlin <johan@gnome.org>
3386 * tests/scanner/Foo-expected.gir:
3387 * tests/scanner/foo-object.h:
3388 Add a union testcase which the compiler currently
3391 2008-08-19 Johan Dahlin <johan@gnome.org>
3393 * gobject-introspection-1.0.pc.in:
3394 Add a g_ir_compiler variable
3396 2008-08-19 Colin Walters <walters@verbum.org>
3398 * giscanner/ast.py: Rework types to be more closely
3400 * giscanner/girparser.py: Parse more bits.
3401 * giscanner/girwriter.py: Write sequences in a new
3402 way that specifies container type.
3403 * giscanner/glibast.py: Adjust for ast.py changes,
3404 add 'ctype' property to GLibObject and GLibInterface
3405 so we can look things up by it later.
3406 * gicanner/transformer.py: Names is new class holding
3407 the various namespaces we manage. Do not confuse
3408 with Namespace which is toplevel XML node effectively.
3409 Rework all type resolution to go through
3410 _resolve_type_name_1.
3411 * giscanner/glibtransformer.py: Raise UnknownTypeError
3412 instead of ValueError for cleanliness. Add Unresolved
3413 class to mark types whose parent we haven't seen yet.
3414 Use new Names object from transformer.py.
3415 Correctly look up parent=.
3416 Fix type validation to handle sequences.
3417 * tests/scanner/Foo-expected.gir: Update for sequence
3418 work, int instead of int32.
3419 * tools/g-ir-scanner: Add --noclosure option
3420 * gir/Makefile.am: Use --noclosure by default for
3423 2008-08-18 Johan Dahlin <johan@gnome.org>
3425 * gir/gio-2.0-good.gir:
3426 * gir/glib-2.0-good.gir:
3427 * gir/gobject-2.0-good.gir:
3430 2008-08-18 Johan Dahlin <johan@gnome.org>
3433 * giscanner/girparser.py:
3434 * giscanner/girwriter.py:
3435 * giscanner/glibast.py:
3436 * giscanner/glibtransformer.py:
3437 * giscanner/transformer.py:
3438 * tests/scanner/Foo-expected.gir:
3439 * tests/scanner/foo-object.h:
3440 * tests/scanner/utility-expected.gir:
3441 * tests/scanner/utility.h:
3442 Redo type resolving and validation.
3443 Add a couple of new tests.
3444 Patch mostly written by Colin.
3446 2008-08-18 Johan Dahlin <johan@gnome.org>
3449 * giscanner/girparser.py:
3451 * giscanner/transformer.py:
3452 Improve enum parsing for enums without a GType.
3453 Make flags/enum references to other girs work
3454 * giscanner/utils.py:
3456 * tests/scanner/Makefile.am:
3457 * tests/scanner/foo-object.h:
3458 * tests/scanner/utility-expected.gir:
3459 * tests/scanner/utility.h:
3460 Add a new test for external enum references
3462 2008-08-18 Johan Dahlin <johan@gnome.org>
3464 * docs/global-module-registry.txt: Update
3466 * tests/array.gir: Update with new type proposal
3468 * girepository/girepository.c (g_type_tag_to_string):
3469 * girepository/girepository.h:
3470 * girepository/girnode.c (g_ir_node_get_full_size_internal),
3472 * girepository/girnode.h:
3473 Make enum serializing functions public. Clean up some whitespace.
3475 2008-08-17 Johan Dahlin <johan@gnome.org>
3477 * docs/global-module-registry.txt:
3478 Add a document for an on disk module registry format
3480 2008-08-17 Johan Dahlin <johan@gnome.org>
3483 * gir/gio-2.0-good.gir:
3486 2008-08-17 Johan Dahlin <johan@gnome.org>
3489 * gir/glib-2.0-good.gir:
3490 * gir/gobject-2.0-good.gir:
3491 * giscanner/cgobject.py:
3492 * giscanner/glibtransformer.py:
3493 Regenerate GObject & GType.
3494 Avoid warnings when generating gobject-2.0.gir.
3495 Introspect a little more, and skip *_get_type functions.
3497 2008-08-17 Colin Walters <walters@verbum.org>
3499 * gir/glib-2.0.gir, gir/gobject-2.0.gir:
3500 Rename to -good, always generate during build.
3501 * gir/Makefile.am: Ensure .gir files dep on
3502 all scanner sources.
3503 * Makefile.am: Switch build order to ensure
3504 the scanner is ready before we do gir/.
3505 * tools/g-ir-scanner: Look for .git too.
3507 2008-08-17 Johan Dahlin <johan@gnome.org>
3509 * girepository/gtypelib.c (validate_enum_blob):
3510 * giscanner/glibtransformer.py:
3511 * giscanner/transformer.py:
3512 Remove resolve_possible_typedefs, it was unused.
3513 Allow multiple enum values of the sample value in an enum,
3514 since it's actually pretty common.
3515 Register enums so they can be resolved too.
3517 2008-08-16 Johan Dahlin <johan@gnome.org>
3519 * giscanner/girparser.py:
3520 Parse enumeration/bitfield.
3522 2008-08-16 Johan Dahlin <johan@gnome.org>
3524 * giscanner/girparser.py:
3527 2008-08-16 Johan Dahlin <johan@gnome.org>
3529 * giscanner/glibtransformer.py:
3530 Resolve type names for alias targets
3531 * giscanner/transformer.py:
3532 Skip FILE* parameters fow now
3534 2008-08-16 Johan Dahlin <johan@gnome.org>
3537 * gir/gobject-2.0.gir:
3540 * tests/scanner/Makefile.am:
3543 2008-08-15 Colin Walters <walters@verbum.org>
3545 * giscanner/glibtransformer.py: Explicitly construct
3546 new list, since we're deleting as we iterate.
3547 Don't delete all structures which end in Class; just
3548 ones which have a paired GObject.
3549 Fix printing of type warning.
3550 * giscanner/transformer.py: Make strip_namespace_object
3551 be the identity function if it doesn't match the
3554 2008-08-15 Colin Walters <walters@verbum.org>
3556 * giscanner/cgobject.py: Define yet more argument
3557 prototypes; fix prototype for g_type_fundamental.
3559 2008-08-14 Johan Dahlin <johan@gnome.org>
3561 * tests/Makefile.am:
3562 * tests/constant.gir:
3563 * tests/gobject.gir:
3565 * tools/generate.c (write_struct_info):
3566 Fix generator for constant/gobject/struct
3568 2008-08-14 Johan Dahlin <johan@gnome.org>
3570 * tests/Makefile.am:
3572 * tools/generate.c (write_enum_info):
3573 Fix generation of enum/bitfields
3575 2008-08-14 Johan Dahlin <johan@gnome.org>
3577 * girepository/girparser.c (start_field), (start_constant),
3578 (start_type), (end_element_handler):
3579 Clear up constant parsing
3584 * tools/generate.c (write_callable_info), (write_function_info),
3585 (write_callback_info), (write_constant_info), (write_signal_info),
3586 (write_vfunc_info), (write_property_info), (write_object_info),
3587 (write_interface_info):
3588 Constants/Signals are handled now.
3590 2008-08-14 Johan Dahlin <johan@gnome.org>
3592 * girepository/girparser.c (start_type):
3593 Don't require c:type.
3594 * tests/Makefile.am:
3597 Update, remove parts we don't support yet
3598 * tests/roundtrips.sh:
3600 * tools/generate.c (write_type_info), (write_field_info),
3601 (write_callable_info), (write_struct_info):
3602 Make it emit proper gir.
3604 2008-08-14 Johan Dahlin <johan@gnome.org>
3606 * giscanner/transformer.py:
3607 New internal function for adding a new node.
3609 2008-08-14 Johan Dahlin <johan@gnome.org>
3612 Define an internal _H_ variable so we skip parsing both
3613 i18n headers, only one is needed.
3615 Add the glib-2.0.gir too.
3616 * giscanner/glibast.py:
3617 Add gconstpointer as an alias for ANY
3618 * giscanner/transformer.py:
3619 Do not lower case enumeration names per se.
3620 Skip functions which has parameters called 'va_list'
3622 2008-08-14 Colin Walters <walters@verbum.org>
3624 * giscanner/transformer.py: Comment data structures.
3625 Also squash pointers in resolve_type_name to correspond
3626 with what we do for params.
3627 * giscanner/glibtransformer.py: Print warnings in more
3628 situations. Rework checks for method/constructor to
3629 look up in our GType database instead of just checking
3630 for *. Avoid generating <record> for GObject which
3631 duplicate the <class>.
3632 * gir/Makefile.am: Generate glib-2.0.gir and gobject-2.0.gir
3635 2008-08-14 Johan Dahlin <johan@gnome.org>
3637 * giscanner/girwriter.py:
3638 * giscanner/glibast.py:
3639 * giscanner/glibtransformer.py:
3640 * giscanner/transformer.py:
3642 * tests/Makefile.am:
3643 Add pyflakes.py and run it in make check.
3644 Update the source code to fix the errors reported by
3647 2008-08-14 Johan Dahlin <johan@gnome.org>
3650 * giscanner/girparser.py:
3651 * giscanner/glibast.py:
3652 * giscanner/glibtransformer.py:
3653 Refactor the parser a bit.
3654 Add parent type to interfaces and update callsites.
3656 2008-08-14 Johan Dahlin <johan@gnome.org>
3658 * giscanner/glibtransformer.py:
3659 * giscanner/utils.py:
3660 Refactor a bit, avoid isinstance and add a method
3661 for each type we parse.
3663 2008-08-14 Johan Dahlin <johan@gnome.org>
3666 * giscanner/girparser.py:
3667 * giscanner/glibtransformer.py:
3668 * tests/Makefile.am:
3669 Run pep8.py in make check, fix old errors.
3671 2008-08-13 Colin Walters <walters@verbum.org>
3673 * giscanner/girparser.py: Parse records.
3675 2008-08-13 Colin Walters <walters@verbum.org>
3677 * gir/Makefile.am: Install again.
3678 * gir/gobject-2.0.gir: Add some more bits.
3680 2008-08-13 Colin Walters <walters@verbum.org>
3682 * gir/gobject-2.0.gir: Use correct namespace, add GType.
3683 * giscanner/girparser.py: Handle aliases.
3684 * giscanner/transformer.py: Record aliases. Make resolver
3685 functions public; we now call into these explicitly from
3686 glibtransformer. Handle resolving aliases.
3687 * giscanner/glibtransformer.py: Separate our internal namespace
3688 from included ones. Call up into transformer's resolver functions.
3690 2008-08-13 Johan Dahlin <johan@gnome.org>
3692 * girepository/girnode.c (g_ir_node_get_full_size_internal):
3693 * girepository/girparser.c (start_class):
3694 * giscanner/glibtransformer.py:
3695 Allow get_type to be None, set a get_type for GInitiallyUnowned too.
3697 2008-08-13 Johan Dahlin <johan@gnome.org>
3699 * giscanner/cgobject.py:
3700 Register GInitiallyUnowned
3701 * giscanner/girwriter.py:
3702 * giscanner/glibtransformer.py:
3703 Special case GObject/GInitially owned as they are a bit special to use.
3705 2008-08-13 Colin Walters <walters@verbum.org>
3707 * tests/scanner/Foo-expected.gir, tests/scanner/utility-expected.gir:
3708 Object is in GObject namespace.
3710 2008-08-13 Colin Walters <walters@verbum.org>
3712 * giscanner/girparser.py: Fix processing of functions
3715 2008-08-13 Colin Walters <walters@verbum.org>
3717 * giscanner/girparser.py: Parse more than just <class.
3718 * giscanner/glibtransformer.py: Put aliases in a separate
3719 data structure since their name is not canonicall.
3720 * giscanner/transformer.py: Handle resolving type names
3723 2008-08-13 Johan Dahlin <johan@gnome.org>
3725 * tools/g-ir-scanner:
3726 Allow multiple libraries
3727 * giscanner/glibtransformer.py:
3728 Rename load_library to add_library, traverse over all libraries
3729 when trying to resolve a function
3731 2008-08-12 Colin Walters <walters@verbum.org>
3733 * giscanner/transformer.py: Record typedefs as <alias> elements.
3734 Also attempt to look up types in external namespaces.
3735 * giscanner/girwriter.py: Write them.
3736 * giscanner/glibtransformer.py: Rework resolver using real instanceof
3737 checks. Resolve interface methods and properties.
3738 * tests/scanner/foo-object.h: Add a method with typedef.
3739 * tests/scanner/Foo-expected.gir: Update.
3740 * girepository/girnode.c: Debug tweaks.
3741 * girepository/girparser.c: Make a first pass through the XML where we
3742 record all the aliases. This lets us resolve them as we go through the
3744 * gir/Makefile.am: Don't install gobject-2.0.gir; we want that to come
3745 from gir-repository.
3747 2008-08-12 Colin Walters <walters@verbum.org>
3749 * giscanner/glibtransformer.py: Resolve typedefs (e.g. AtkAttributeSet -> GSList).
3750 Correctly do subclasseing in 2nd pass resolution. Handle callbacks in structure
3752 * giscanner/transformer.py: Record typedefs and expose public API for resolving
3754 * tests/scanner/Foo-expected.gir: Fix expected callback types.
3756 2008-08-12 Colin Walters <walters@verbum.org>
3758 * giscanner/glibtransformer.py: Also transform object properties.
3760 2008-08-12 Colin Walters <walters@verbum.org>
3762 * giscanner/glibtransformer.py: Also transform callbacks
3763 and structure field types.
3764 * tests/scanner/Fooe-expected.gir: Update to expect correct
3765 names for callbacks and structs.
3767 2008-08-12 Colin Walters <walters@verbum.org>
3769 * girepository/girparser.c: Handle 'any'.
3770 * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
3771 Add test for void *.
3773 2008-08-12 Colin Walters <walters@verbum.org>
3775 * giscanner/glibtransformer.py: We need to do type
3776 resolution in a second pass after we've seen all the
3777 enums, records, etc.
3779 2008-08-12 Colin Walters <walters@verbum.org>
3781 * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
3782 Add enum return value.
3783 * giscanner/glibtransformer.py: Transform function return types
3786 2008-08-12 Colin Walters <walters@verbum.org>
3788 * tests/scanner/Makefile.am: Dep .gir files on scanner
3789 sources too. Also remove @ so we see scanner invocations.
3791 2008-08-12 Colin Walters <walters@verbum.org>
3793 * girepository/girparser.c, girepository/gtypelib.c,
3794 girepository/gtypelib.h, girepository/girnode.c:
3795 Remove usage of (GAPI-oriented) TypeTag in favor of
3796 GITypeTag from girepository.h.
3798 2008-08-10 Colin Walters <walters@verbum.org>
3800 * tests/roundtrips.sh: Use the correct tests.
3802 2008-08-10 Colin Walters <walters@verbum.org>
3804 * giscanner/cgobject.py: Declare/wrap a few more functions.
3805 Fix parameter types for g_object_new and g_type_fundamental.
3807 2008-08-10 Colin Walters <walters@verbum.org>
3809 * giscanner/cgobject.py: Add new decorator @gwrap which forces
3810 us to declare types for both return value and parameters. The
3811 ctypes default of 'int' is bad because it hides 32/64 bit
3812 problems. Convert all existing functions to use it.
3814 2008-08-09 Johan Dahlin <johan@gnome.org>
3816 * giscanner/__init__.py:
3818 * giscanner/cgobject.py:
3819 * giscanner/gidlparser.py:
3820 * giscanner/gidlwriter.py:
3821 * giscanner/girparser.py:
3822 * giscanner/girwriter.py:
3823 * giscanner/glibast.py:
3824 * giscanner/glibtransformer.py:
3825 * giscanner/odict.py:
3826 * giscanner/sourcescanner.py:
3827 * giscanner/transformer.py:
3828 * giscanner/utils.py:
3829 * giscanner/xmlwriter.py:
3830 * tools/g-ir-scanner:
3834 2008-08-09 Johan Dahlin <johan@gnome.org>
3837 * relaxng/c-types.xml:
3838 * relaxng/g-types.xml:
3839 * relaxng/relaxng.rng:
3841 Remove outdated relaxng schemas.
3843 2008-08-09 Johan Dahlin <johan@gnome.org>
3846 Rename metadata to typelib in variable names,
3849 2008-08-09 Johan Dahlin <johan@gnome.org>
3853 Remove old C scanner, which got rewritten in python.
3855 2008-08-09 Johan Dahlin <johan@gnome.org>
3857 * girepository/Makefile.am:
3858 * tools/Makefile.am:
3859 * tools/girmodule.c:
3860 * tools/girmodule.h:
3863 * tools/girparser.c:
3864 * tools/girparser.h:
3865 * tools/girwriter.c:
3866 * tools/girwriter.h:
3867 Move shared *.[ch] files to girepository from tools
3869 2008-08-09 Johan Dahlin <johan@gnome.org>
3871 * tests/Makefile.am:
3874 * tests/constant.test:
3876 * tests/errors.test:
3877 * tests/function.test:
3878 * tests/gobject.test:
3879 * tests/interface.test:
3880 * tests/object.test:
3881 * tests/struct.test:
3886 Rename *.test to *.gir
3888 2008-08-09 Johan Dahlin <johan@gnome.org>
3891 * tests/Makefile.am:
3892 * tests/parser/Foo-expected.gir:
3893 * tests/parser/Makefile.am:
3894 * tests/parser/foo-object.h:
3895 * tests/parser/foo.c:
3896 * tests/parser/utility-expected.gir:
3897 * tests/parser/utility.c:
3898 * tests/parser/utility.h:
3899 * tests/scanner/Makefile.am:
3900 Rename tests/parser to test/scanner
3902 2008-08-08 Colin Walters <walters@verbum.org>
3904 * tests/roundtrips.sh: Use local .gir files again.
3906 2008-08-08 Colin Walters <walters@verbum.org>
3908 * tests/invoke/Makefile.am: .gir file depends on libtool
3911 2008-08-08 Colin Walters <walters@verbum.org>
3913 * tools/girnode.c: Pass through parent node so we can
3914 print the node whose child is NULL, if that occurs.
3916 2008-08-08 Johan Dahlin <johan@gnome.org>
3918 * tests/Makefile.am:
3919 Disable roundtrip tests which are not yet working
3920 * tests/invoke/testfns.gir:
3923 2008-08-08 Johan Dahlin <johan@gnome.org>
3925 * giscanner/girwriter.py:
3927 * giscanner/glibast.py:
3928 * giscanner/glibtransformer.py:
3929 Swap order of members, to keep it consistent with
3932 2008-08-08 Johan Dahlin <johan@gnome.org>
3934 * girepository/gtypelib.c (validate_header):
3935 * girepository/gtypelib.h:
3937 * giscanner/girwriter.py:
3938 * giscanner/sourcescanner.c (gi_source_symbol_ref),
3939 (gi_source_symbol_unref):
3942 * tests/constant.test:
3944 * tests/errors.test:
3945 * tests/function.test:
3946 * tests/gobject.test:
3947 * tests/interface.test:
3948 * tests/invoke/Makefile.am:
3949 * tests/invoke/testfns.xml:
3950 * tests/object.test:
3951 * tests/parser/Makefile.am:
3952 * tests/roundtrips.sh:
3953 * tests/struct.test:
3958 * tools/Makefile.am:
3959 * tools/compiler.c (main):
3960 * tools/generate.c (write_callable_info), (write_function_info),
3962 * tools/gidlmodule.c:
3963 * tools/gidlmodule.h:
3966 * tools/gidlparser.c:
3967 * tools/gidlparser.h:
3968 * tools/gidlwriter.c:
3969 * tools/gidlwriter.h:
3970 * tools/scanner.c (create_node_from_gtype),
3971 (create_node_from_ctype), (g_igenerator_process_properties),
3972 (g_igenerator_process_signals), (g_igenerator_create_object),
3973 (g_igenerator_create_interface), (g_igenerator_create_boxed),
3974 (g_igenerator_create_enum), (g_igenerator_create_flags),
3975 (g_igenerator_process_function_symbol),
3976 (g_igenerator_process_unregistered_struct_typedef),
3977 (g_igenerator_process_struct_typedef),
3978 (g_igenerator_process_union_typedef),
3979 (g_igenerator_process_enum_typedef),
3980 (g_igenerator_process_function_typedef),
3981 (g_igenerator_process_constant), (g_igenerator_process_symbols),
3982 (g_igenerator_add_module), (g_igenerator_add_include_idl):
3983 Merge in the gir-compiler branch.
3984 Thanks to Philip and Colin for their help.
3986 2008-07-26 Colin Walters <walters@verbum.org>
3988 * tools/Makefile.am (bin_PROGRAMS): Install g-idl-compiler
3989 and g-idl-generate to go along with how we're changing this
3990 module to be installed.
3991 * gobject-introspection-1.0.pc.in: Set up Cflags and Libs.
3993 2008-07-24 Colin Walters <walters@verbum.org>
3995 * girepository/girepository.c (g_irepository_register): Add
3996 environment variable G_IREPOSITORY_VERBOSE so we can print
3997 out what we're doing.
3998 * girepository/girepository.c (g_irepository_register_file):
3999 Add GError error message to g_debug call.
4001 2008-07-08 Jürg Billeter <j@bitron.ch>
4003 * giscanner/glibast.py:
4007 2008-06-21 Johan Dahlin <jdahlin@async.com.br>
4009 * giscanner/girparser.py (GIRParser._parse_api): Ignore a few
4012 2008-06-20 Johan Dahlin <jdahlin@async.com.br>
4015 * giscanner/girwriter.py:
4016 * giscanner/transformer.py:
4017 * tests/parser/Foo-expected.gir:
4018 * tests/parser/foo-object.h:
4019 * tests/parser/foo.c (foo_object_allow_none):
4020 Add support for gtk-doc annotations for allow-none.
4023 2008-06-19 Johan Dahlin <jdahlin@async.com.br>
4026 * giscanner/girwriter.py:
4027 * giscanner/glibast.py:
4028 * giscanner/glibtransformer.py:
4029 * giscanner/transformer.py:
4030 * tests/parser/Foo-expected.gir:
4031 Start using abstract type instead of the raw C types.
4032 Register a bunch of glib types we care about.
4034 2008-06-19 Rob Taylor <rob.taylor@codethink.co.uk>
4039 2008-06-08 Philip Van Hoof <pvanhoof@gnome.org>
4041 * girepository/girepository.c:
4042 * girepository/gtypelib.c:
4043 * girepository/ginfo.c:
4044 * girepository/ginvoke.c:
4045 * girepository/girepository.h:
4046 * girepository/gtypelib.h:
4047 * girepository/gmetadata.c:
4048 * girepository/Makefile.am:
4049 * girepository/gmetadata.h:
4051 * tools/gidlmodule.c:
4054 * tools/gidlmodule.h:
4055 * tools/gidlparser.c:
4057 Renamed GMetadata to GTypelib
4059 2008-06-07 Johan Dahlin <jdahlin@async.com.br>
4061 * giscanner/xmlwriter.py:
4062 Improve line wrapping when > 79 charaters
4064 2008-06-05 Jürg Billeter <j@bitron.ch>
4067 * giscanner/girwriter.py:
4068 * giscanner/transformer.py:
4069 Use <type> element for field types
4070 * tests/parser/Foo-expected.gir:
4073 2008-06-04 Johan Dahlin <jdahlin@async.com.br>
4075 * giscanner/glibtransformer.py:
4076 Fix a bug which prevented GdkEvent from being generated
4078 2008-06-03 Johan Dahlin <jdahlin@async.com.br>
4080 * giscanner/Makefile.am:
4082 * giscanner/girwriter.py:
4083 * giscanner/glibast.py:
4084 * giscanner/glibtransformer.py:
4085 * giscanner/transformer.py:
4086 * giscanner/utils.py:
4087 * tests/parser/Foo-expected.gir:
4088 Improve enum member parsing and introspection
4090 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
4092 * giscanner/scannerparser.y:
4093 * giscanner/sourcescanner.h:
4094 * giscanner/sourcescanner.py:
4095 Add a new source type enum for member.
4096 Use __repr__ for improved debugging
4097 * giscanner/girparser.py:
4099 * giscanner/transformer.py:
4100 Improve parsing of struct members.
4101 * tests/parser/foo-object.h:
4104 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
4106 * giscanner/xmlwriter.py:
4107 Improve error reporting when trying to quote None.
4108 * giscanner/girparser.py:
4109 Do not print warnings when including more complete .gir files
4110 * giscanner/girwriter.py:
4111 Do not require a name for parameters, add a todo for singletons
4112 * giscanner/glibtransformer.py:
4113 Refactor the way structs are done, add a couple of hacks to allow
4115 * giscanner/transformer.py:
4116 Add enough hacks so cairo, atk and pango.gir can be parsed properly
4117 * gobject-introspection-1.0.pc.in:
4118 Export girdir, so we can access gobject-2.0.gir from outside
4120 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
4122 * tools/g-ir-scanner:
4123 * tests/parser/Makefile.am:
4124 Update sys.path before running the parser so we don't have
4125 to setup PYTHONPATH ourselves.
4129 * girepository/Makefile.am:
4130 * giscanner/transformer.py:
4131 * gobject-introspection-1.0.pc.in:
4132 * gobject-introspection.pc.in:
4133 * tools/Makefile.am:
4135 Rename pkg-config name to gobject-introspection-1.0,
4136 Do not installed anything which is not using the gir format.
4137 Disable compililation the old C scanner, but still keep the source
4138 until all the remaning functionallity has been ported.
4140 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
4142 * giscanner/giscannermodule.c (symbol_get_ident): Prevent
4143 a crash when symbol->indent is NULL.
4145 * giscanner/sourcescanner.py (ctype_name): Add ctype_name,
4146 a function to convert a CTYPE symbol to a string
4148 2008-05-24 Johan Dahlin <jdahlin@async.com.br>
4151 * giscanner/girwriter.py:
4152 * giscanner/giscannermodule.c
4153 (pygi_source_scanner_append_filename),
4154 (pygi_source_scanner_parse_file):
4155 * giscanner/glibtransformer.py:
4156 * giscanner/sourcescanner.py:
4157 Revert back to using temporary files to send in headers.
4158 Allow Functions to be passed in as callbacks, add a couple
4159 of try/excepts missing features.
4160 We can now scan pango
4162 2008-05-08 Johan Dahlin <johan@gnome.org>
4164 * giscanner/glibtransformer.py:
4165 * giscanner/transformer.py:
4166 Move namespace stripping glibtransformer->transformer
4168 2008-05-08 Johan Dahlin <johan@gnome.org>
4171 * giscanner/girwriter.py:
4172 * giscanner/glibtransformer.py:
4173 * giscanner/transformer.py:
4174 * tools/g-ir-scanner:
4175 Introduce a namespace ast node
4177 2008-05-05 Johan Dahlin <johan@gnome.org>
4179 * giscanner/__init__.py:
4180 * giscanner/sourcescanner.py:
4181 * giscanner/transformer.py:
4182 Move sourcescanner symbols to the sourcescanner module, instead
4183 of in the global __init__ namespace.
4185 2008-05-03 Johan Dahlin <johan@gnome.org>
4187 * giscanner/glibtransformer.py:
4188 * tools/g-ir-scanner:
4189 Handle missing parameters better, allow - and + in .la dlname
4192 2008-05-03 Johan Dahlin <johan@gnome.org>
4194 * giscanner/__init__.py:
4196 * giscanner/girwriter.py:
4197 * giscanner/glibtransformer.py:
4198 * giscanner/transformer.py:
4199 Parse struct fields properly, improve debugging.
4201 2008-04-29 Johan Dahlin <johan@gnome.org>
4204 * giscanner/girwriter.py:
4205 * giscanner/transformer.py:
4206 * tests/parser/Foo-expected.gir:
4208 Use transfer-ownership everywhere, to mark ownership/calle/caller etc.
4210 2008-04-29 Johan Dahlin <jdahlin@async.com.br>
4213 * docs/g-ir-scanner.1:
4214 * metadata-annotations-proposal.txt:
4215 * metadata-format.txt:
4216 Add a basic, unfinshed man page for g-ir-scanner, move documents into .txt
4218 2008-04-29 Johan Dahlin <jdahlin@async.com.br>
4220 * giscanner/girwriter.py:
4221 * giscanner/glibtransformer.py:
4222 * giscanner/transformer.py:
4223 * giscanner/xmlwriter.py:
4224 * tests/parser/Foo-expected.gir:
4225 * tests/parser/foo-object.h:
4226 Write record/structs to gir file too. Add a couple of tests,
4227 fix an off by one error in xmlwriter.py.
4229 2008-04-28 Johan Dahlin <johan@gnome.org>
4231 * giscanner/xmlwriter.py: Calculate the line length properly,
4232 include the provided extra indentation in the calculation, really.
4234 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
4237 * giscanner/glibast.py:
4238 * giscanner/glibtransformer.py:
4239 * giscanner/transformer.py:
4240 * tools/g-ir-scanner:
4241 Add a --strip-prefix and sort out confusion between names and symbols
4242 for functions and struct + derivaties.
4243 Refactor bootstrap of g-ir-scanner, so we can set options on
4244 Transformer() before parsing everything.
4246 2008-04-28 Johan Dahlin <johan@gnome.org>
4248 * giscanner/transformer.py (Transformer._traverse_one): Avoid recursion
4249 when scanning girepository.h
4251 * giscanner/sourcescanner.py (SourceScanner._preprocess): Define
4252 a __GI_SCANNER__ when we run.
4254 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
4257 * giscanner/girwriter.py:
4258 * giscanner/glibast.py:
4259 * giscanner/glibtransformer.py:
4260 * tests/parser/Foo-expected.gir:
4261 * tests/parser/utility-expected.gir:
4262 Rename most c:identifier to c:type. Add new ones to
4263 class/interface/enum/boxed.
4265 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
4268 * giscanner/girwriter.py:
4269 * giscanner/glibtransformer.py:
4270 * tests/parser/Foo-expected.gidl:
4271 * tests/parser/Makefile.am:
4272 Move c:identifier from return-value to subchild type,
4273 as per Jürgs suggestion
4275 2008-04-28 Johan Dahlin <johan@gnome.org>
4277 * giscanner/girwriter.py:
4278 * tests/parser/Foo-expected.gir:
4279 Write property.type as a child node.
4281 2008-04-27 Johan Dahlin <johan@gnome.org>
4286 * gidl/gobject-2.0.gidl:
4288 * gir/gobject-2.0.gir:
4289 * tests/parser/Makefile.am:
4290 Replace the GObject gidl with a GObject gir.
4292 2008-04-27 Johan Dahlin <johan@gnome.org>
4294 * tools/Makefile.am (bin_SCRIPTS): g-ir-scanner is a script,
4297 * giscanner/xmlwriter.py:
4298 * tests/parser/Foo-expected.gir:
4299 Include indentation in line length calculation
4301 2008-04-27 Johan Dahlin <johan@gnome.org>
4303 * giscanner/girparser.py:
4304 Prettify NS parsing using elementtree.
4306 2008-04-27 Johan Dahlin <johan@gnome.org>
4309 * giscanner/Makefile.am:
4310 * giscanner/girparser.py:
4311 * giscanner/glibtransformer.py:
4312 * tests/parser/Foo-expected.gidl:
4313 * tests/parser/Foo-expected.gir:
4314 * tests/parser/Makefile.am:
4315 * tests/parser/utility-expected.gidl:
4316 * tests/parser/utility-expected.gir:
4317 * tools/g-ir-scanner:
4318 Switch over to GIR as the default format. Add a simple GIDL
4320 Update tests and fix simplify makefiles by depending
4321 on GNU make extensions.
4323 2008-04-27 Johan Dahlin <johan@gnome.org>
4325 * giscanner/xmlwriter.py:
4326 Wrap attributes for lines which are wider than 79 characters
4328 * giscanner/scannerlexer.l:
4329 Allow parenthesis in annotations
4332 * giscanner/gidlwriter.py:
4333 * giscanner/girwriter.py:
4334 * giscanner/glibtransformer.py:
4335 * giscanner/transformer.py:
4336 Add initial sequence support, including annotation.
4337 Refactor type handling a bit.
4339 2008-04-27 Johan Dahlin <johan@gnome.org>
4341 * tests/parser/Foo-expected.gidl:
4342 * tests/parser/foo-object.h:
4343 * tests/parser/foo.c (foo_object_class_init),
4344 (foo_object_get_strings), (foo_object_get_objects):
4345 Add two new functions to check sequence return values.
4346 Also fixes a compilation warning.
4348 2008-04-27 Johan Dahlin <johan@gnome.org>
4350 * giscanner/giscannermodule.c (]): Cast the getter, avoids
4351 a compilation warning.
4353 * tools/Makefile.am (g_ir_scanner_SOURCES):
4354 g-ir-scanner has no sources.
4356 2008-04-25 Johan Dahlin <johan@gnome.org>
4358 * giscanner/Makefile.am:
4360 * giscanner/gidlparser.py:
4361 * giscanner/gidlwriter.py:
4362 * giscanner/girwriter.py:
4363 * giscanner/glibast.py:
4364 * giscanner/glibtransformer.py:
4365 * giscanner/transformer.py:
4366 Split out nodes to ast.py and glibast.py
4368 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
4370 * giscanner/Makefile.am:
4371 * giscanner/gidlparser.py:
4372 * giscanner/gidlwriter.py:
4373 * giscanner/girwriter.py:
4374 * giscanner/glibtransformer.py:
4375 * giscanner/gobjecttreebuilder.py:
4376 * giscanner/transformer.py:
4377 * giscanner/treebuilder.py:
4378 * tools/g-ir-scanner:
4379 Rename treebuilder to transformer and
4380 gobjectreebuilder to glibtransformer.
4382 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
4384 * giscanner/Makefile.am:
4385 * giscanner/__init__.py:
4386 * giscanner/cgobject.py:
4387 * giscanner/gidlparser.py:
4388 * giscanner/gidlwriter.py:
4389 * giscanner/girwriter.py:
4390 * giscanner/gobjecttreebuilder.py:
4391 * giscanner/odict.py:
4392 * giscanner/sourcescanner.py:
4393 * giscanner/treebuilder.py:
4394 * giscanner/xmlwriter.py:
4395 * tools/Makefile.am:
4396 * tools/g-ir-scanner:
4397 Add LGPLv2 license header and install all python files
4399 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
4402 * giscanner/gidlwriter.py:
4403 * giscanner/giscannermodule.c (pygi_source_directive_new),
4404 (directive_get_options), (pygi_source_symbol_new),
4405 (symbol_get_base_type), (pygi_source_type_new),
4406 (type_get_base_type), (type_get_child_list),
4407 (pygi_source_scanner_get_symbols),
4408 (pygi_source_scanner_get_directives):
4409 * giscanner/gobjecttreebuilder.py:
4410 * giscanner/sourcescanner.py:
4411 * giscanner/treebuilder.py:
4412 * tests/parser/foo-object.h:
4413 Add support for virtual methods.
4414 Pair struct FooClass with struct Foo.
4415 Clean up the SourceScanner bindings a bit.
4416 Add a testcase for virtual methods.
4418 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
4420 * giscanner/cgobject.py:
4421 * giscanner/gidlwriter.py:
4422 * giscanner/gobjecttreebuilder.py:
4423 Add support for signals
4425 * tests/parser/foo.c (foo_object_class_init):
4426 * Foo-expected.gidl:
4427 Add a signal and update the expected output.
4429 2008-04-24 Johan Dahlin <jdahlin@async.com.br>
4431 * giscanner/gidlwriter.py:
4432 * giscanner/girwriter.py:
4433 * giscanner/giscannermodule.c (directive_get_name),
4434 (directive_get_value), (directive_get_options),
4435 (symbol_get_directives), (symbol_set_directives),
4436 (pygi_source_scanner_parse_file),
4437 (pygi_source_scanner_lex_filename),
4438 (pygi_source_scanner_get_directives), (init_giscanner):
4439 * giscanner/sourcescanner.c (gi_source_scanner_get_directives):
4440 * giscanner/sourcescanner.h:
4441 * giscanner/sourcescanner.py:
4442 * giscanner/treebuilder.py:
4443 * tools/g-ir-scanner:
4444 Add support for source/header annotations.
4446 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
4448 * giscanner/gidlwriter.py:
4449 * giscanner/girwriter.py:
4450 * giscanner/gobjecttreebuilder.py:
4451 * giscanner/treebuilder.py:
4452 Add support for Callbacks
4454 2008-04-22 Havoc Pennington <hp@pobox.com>
4456 * girepository/ginvoke.c (g_function_info_invoke): If a symbol is
4457 not in metadata->module, look for it in the global module, in case
4458 some other object or the app itself provides the symbol.
4460 2008-04-22 Havoc Pennington <hp@pobox.com>
4462 * girepository/gmetadata.c (_g_metadata_init): hack to avoid
4463 dlopening a library that is already in the main app, by checking
4464 whether one of the lib's symbols is already loaded.
4466 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
4468 * tests/parser/Foo-expected.gidl:
4469 * tests/parser/foo-object.h:
4472 2008-04-22 Havoc Pennington <hp@pobox.com>
4474 * girepository/ginfo.c (g_interface_info_find_method):
4475 Use interface_blob_size not object_blob_size to compute offset.
4477 2008-04-22 Havoc Pennington <hp@pobox.com>
4479 * girepository/gmetadata.c (_g_metadata_init): remove
4480 G_MODULE_BIND_LOCAL flag when loading libraries, since some libs
4481 (Glade and Clutter for example) rely on being loaded globally.
4483 2008-04-22 Havoc Pennington <hp@pobox.com>
4485 * girepository/ginfo.c (g_registered_type_info_get_g_type): new
4486 function to get the GType given a RegisteredTypeInfo
4488 2008-04-22 Johan Dahlin <johan@gnome.org>
4490 * COPYING: Add a LGPL license, to prevent automake to
4491 put in a copy of GPL here. Pointed out by Havoc.
4493 * girepository/ginfo.c (g_info_from_entry), (g_type_info_new),
4494 (g_type_info_is_pointer), (g_type_info_get_tag),
4495 (g_type_info_get_param_type), (g_type_info_get_interface),
4496 (g_type_info_get_array_length), (g_type_info_is_zero_terminated),
4497 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
4498 (g_error_domain_info_get_codes), (g_enum_info_get_value),
4499 (g_object_info_get_interface), (g_object_info_get_field),
4500 (g_interface_info_get_prerequisite),
4501 (g_signal_info_get_class_closure), (g_constant_info_get_value):
4502 * girepository/ginvoke.c (get_ffi_type):
4503 * girepository/girepository.h:
4504 * girepository/gmetadata.c (g_metadata_get_dir_entry),
4505 (g_metadata_check_sanity), (validate_header),
4506 (validate_array_type_blob), (validate_iface_type_blob),
4507 (validate_param_type_blob), (validate_error_type_blob),
4508 (validate_type_blob), (validate_constant_blob),
4509 (validate_struct_blob), (validate_enum_blob):
4510 * girepository/gmetadata.h:
4511 * tests/Makefile.am:
4512 * tests/invoke/Makefile.am:
4513 * tests/invoke/invoke.c (main):
4514 * tests/roundtrips.sh:
4515 * tools/Makefile.am:
4516 * tools/compiler.c (format_output), (write_out_metadata), (main):
4517 * tools/generate.c (write_type_name), (write_type_info),
4518 (write_constant_value), (write_enum_info), (load_metadata), (main):
4519 * tools/gidlcompilercontext.c:
4520 * tools/gidlcompilercontext.h:
4521 * tools/gidlcompilerentrynode.c:
4522 * tools/gidlcompilerentrynode.h:
4523 * tools/gidlcompilertypenode.c:
4524 * tools/gidlcompilertypenode.h:
4525 * tools/gidlmodule.c (g_idl_module_build_metadata):
4526 * tools/gidlmodule.h:
4527 * tools/gidlnode.c (init_stats), (dump_stats),
4528 (g_idl_node_get_size), (g_idl_node_get_full_size),
4529 (g_idl_node_cmp), (g_idl_node_can_have_member),
4530 (g_idl_node_add_member), (g_idl_node_param_direction_string),
4531 (parse_int_value), (parse_uint_value), (parse_float_value),
4532 (parse_boolean_value), (find_entry_node), (find_entry),
4533 (serialize_type), (g_idl_node_build_metadata), (write_string):
4535 * tools/gidlparser.c (parse_type_internal):
4536 * tools/quote-file.sh:
4537 Revert revisions 157,149-148,136-129 and 120.
4538 Move back to using g-idl-generate to generate the metadata and
4539 avoids dependency on a c compiler.
4541 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
4543 * giscanner/girwriter.py:
4544 * tools/g-ir-scanner:
4545 Add an initial GIR writer and a --format option to g-ir-scanner
4547 2008-04-21 Johan Dahlin <johan@gnome.org>
4549 * giscanner/cgobject.py: Use ctypes.util.find_library to locate
4550 gobject-2.0 and raise ImportError if not found.
4552 * giscanner/gidlparser.py:
4553 * giscanner/gidlwriter.py:
4554 * giscanner/gobjecttreebuilder.py:
4555 * tools/g-ir-scanner:
4556 Add a --include argument to include types from other idls.
4557 Add a minimalistic GIDL parser (just objects for now)
4558 Implement resolving of external type references and use it to
4559 resolve parent types, argument types and return types.
4561 2008-04-21 Johan Dahlin <johan@gnome.org>
4563 * giscanner/gidlwriter.py:
4564 * giscanner/gobjecttreebuilder.py:
4565 * giscanner/treebuilder.py:
4566 Add support for properties.
4567 Refactor Class/Interface support a bit, to share more code and
4568 always initialize their method attribute to an empty list.
4570 2008-04-21 Johan Dahlin <johan@gnome.org>
4572 * giscanner/cgobject.py:
4573 Add a workaround for a glib bug interface introspection bug
4574 (object_interface_list_properties, object_class_list_properties):
4575 Cast the return value to GParamSpec.
4577 * tests/parser/Foo-expected.gidl: Update
4578 * tests/parser/foo.c: Add a string property
4580 * giscanner/gobjecttreebuilder.py:
4581 After stripping namespaces, remove the original
4582 item to avoid duplication (GtkButton struct and Button object)
4584 2008-04-21 Johan Dahlin <johan@gnome.org>
4586 * giscanner/gobjecttreebuilder.py:
4587 * giscanner/treebuilder.py:
4588 Strip namespaces before objects, so we'll export
4589 GtkButton as Button in the gtk namespace
4591 2008-04-21 Johan Dahlin <johan@gnome.org>
4593 * giscanner/gidlwriter.py:
4594 * giscanner/gobjecttreebuilder.py:
4595 * giscanner/treebuilder.py:
4596 Add constructors for object/boxed types.
4598 2008-04-21 Johan Dahlin <johan@gnome.org>
4600 * giscanner/gidlwriter.py:
4601 * giscanner/gobjecttreebuilder.py:
4602 Add support for boxed types
4604 2008-04-21 Johan Dahlin <johan@gnome.org>
4606 * giscanner/giscannermodule.c: Mark structures as const,
4607 wrap SourceType.const_string.
4609 * tests/parser/foo-object.h: Add a couple of constants.
4611 * giscanner/gidlwriter.py:
4612 * giscanner/gobjecttreebuilder.py:
4613 * giscanner/treebuilder.py:
4614 Add basic support for interfaces
4616 * tools/g-ir-scanner:
4617 Add -o/--output for writing to a file
4619 2008-04-21 Havoc Pennington <hp@redhat.com>
4621 * TODO: add some C API wishlist items I could think of quickly
4623 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
4625 * giscanner/gidlwriter.py:
4626 * giscanner/xmlwriter.py:
4627 Add a simple api for writing tags which can be used
4628 with the new 'with statement' in python 2.5
4630 2008-04-21 Johan Dahlin <johan@gnome.org>
4632 * giscanner/gobjecttreebuilder.py:
4633 Strip namespace and object prefix from method names.
4635 2008-04-21 Johan Dahlin <johan@gnome.org>
4637 * tools/g-ir-scanner (main): Add --pkg option to pass in
4638 pkg-config modules to get cflags from.
4640 * giscanner/gidlwriter.py (GIDLWriter._write_method):
4641 Avoid duplication, reuse function writer for methods.
4643 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
4645 * giscanner/gidlwriter.py:
4646 * giscanner/gobjecttreebuilder.py:
4647 * giscanner/treebuilder.py:
4648 * tools/g-ir-scanner:
4649 Resolve libtool .la files.
4650 Strip name spaces for methods.
4651 Add function symbols
4653 2008-04-20 Johan Dahlin <jdahlin@async.com.br>
4655 * giscanner/cgobject.py:
4656 * giscanner/gidlwriter.py:
4657 * giscanner/gobjecttreebuilder.py:
4658 * giscanner/treebuilder.py:
4659 Add support for classes and methods
4661 2008-04-20 Johan Dahlin <johan@gnome.org>
4663 * giscanner/gidlwriter.py:
4664 * giscanner/gobjecttreebuilder.py:
4665 * giscanner/odict.py:
4666 Avoid conflicts, keep the output ordered similar to
4667 the order of the input.
4668 Add a simple ordered dictionary implemenation
4670 2008-04-19 Johan Dahlin <johan@gnome.org>
4672 * giscanner/cgobject.py:
4673 * giscanner/gidlwriter.py:
4674 * giscanner/gobjecttreebuilder.py:
4675 * tools/g-ir-scanner:
4676 Start introspecting get-type functions.
4677 Implement support for GLib/GFlags GTypes.
4678 Add a ctype based GObject binding.
4680 2008-04-18 Johan Dahlin <jdahlin@async.com.br>
4682 * giscanner/gidlwriter.py:
4683 * giscanner/xmlwriter.py:
4684 * tools/g-ir-scanner:
4685 Add a simplistic gidl writer, which can't do too much.
4687 2008-04-18 Johan Dahlin <johan@gnome.org>
4689 * giscanner/sourcescanner.py:
4690 * giscanner/treebuilder.py:
4691 * tools/g-ir-scanner:
4692 split tree building and source scanning interface to separate files.
4694 2008-04-18 Johan Dahlin <johan@gnome.org>
4696 * tools/g-ir-scanner (Parameter.__init__): Start constructing
4698 - Add support for struct/parameter/return, start parsing of ctypes
4700 * giscanner/giscannermodule.c: wrap GISourceType.child_list and
4703 2008-03-31 Johan Dahlin <johan@gnome.org>
4705 * tools/g-ir-scanner:
4706 Start to build abstract syntax node of scanned sources.
4707 Add support for cpp options.
4709 2008-03-27 Johan Dahlin <johan@gnome.org>
4711 * giscanner/giscannermodule.c:
4712 * giscanner/scannerlexer.l:
4713 * giscanner/sourcescanner.c:
4714 * tools/g-ir-scanner:
4716 Add simple pre-processor using subprocess and a PIPE.
4717 Change the parse_file apis to accept a file descriptor.
4719 2008-03-25 Johan Dahlin <johan@gnome.org>
4721 * giscanner/__init__.py:
4722 * tools/g-ir-scanner:
4723 Fix a typo and add an example python test program.
4725 2008-03-25 Johan Dahlin <johan@gnome.org>
4727 * giscanner/__init__.py:
4728 * giscanner/giscannermodule.c:
4729 * giscanner/sourcescanner.c:
4730 * giscanner/sourcescanner.h:
4731 Add constants and wrap a few more SymbolType fields
4733 2008-03-25 Johan Dahlin <johan@gnome.org>
4737 * giscanner/__init__.py:
4738 * giscanner/giscannermodule.c:
4739 * giscanner/Makefile.am:
4741 Add initial python bindings for the scanner and
4742 depend on python 2.5.
4744 2008-03-25 Johan Dahlin <johan@gnome.org>
4748 * giscanner/Makefile.am:
4749 * giscanner/sourcescanner.c:
4750 * giscanner/sourcescanner.h:
4751 * tools/Makefile.am:
4752 * tools/grealpath.h:
4753 * tools/sourcescanner.c:
4754 * tools/sourcescanner.h:
4756 Move the scanner to a separate library.
4758 2008-03-23 Johan Dahlin <johan@gnome.org>
4760 * tools/Makefile.am:
4763 * tools/scannerlexer.l:
4764 * tools/scannerparser.y:
4765 * tools/sourcescanner.c:
4766 * tools/sourcescanner.h:
4767 Split out the source scanner from the generator.
4768 Rename the symbols used in the scanner to use the gi_ prefix.
4769 This should make it possible to use the raw C parser from
4772 2008-03-23 Johan Dahlin <johan@gnome.org>
4774 * tests/parser/Makefile.am (utility.gidl):
4775 * tests/parser/utility-expected.gidl:
4776 Pass in the gobject.gidl since we're defining a GObject.
4778 2008-03-12 Johan Dahlin <johan@gnome.org>
4780 * relaxng/relaxng.rng:
4781 Add a releaxng in relaxng we can use to validate the relaxngs
4784 2008-03-12 Jürg Billeter <j@bitron.ch>
4786 * tools/scanner.c: (g_igenerator_new):
4787 * tools/scannerparser.y:
4788 Fix compiler warnings.
4790 2008-03-12 Jürg Billeter <j@bitron.ch>
4794 * tools/scannerparser.y:
4795 Start fixing memory management in g-idl-scanner.
4797 2008-03-12 Rob Taylor <rob.taylor@codethink.co.uk>
4799 * tools/gidlcompilercontext.c: (write_compiled):
4800 Fix critical warning when no shlib passed to g-idl-compiler.
4802 2008-03-12 Johan Dahlin <johan@gnome.org>
4804 * tests/parser/utility-expected.gidl:
4805 * tests/parser/utility.h:
4806 Add a get_type-function, so the scanner actually
4807 parses it as an object.
4809 2008-03-12 Johan Dahlin <johan@gnome.org>
4811 * tools/gidlwriter.c (function_generate): Add missing trailing quote.
4814 * tests/parser/Foo-expected.gidl:
4815 * tests/parser/Makefile.am:
4816 * tests/parser/foo-object.h:
4817 * tests/parser/foo.c:
4818 * tests/parser/utility-expected.gidl:
4819 * tests/parser/utility.c:
4820 * tests/parser/utility.h:
4822 Add a new gidl test. 'utility.gidl', which is used to be able
4823 to test external type references. Add a reference to UtilityObject*
4826 2008-03-11 Johan Dahlin <johan@gnome.org>
4830 Remove most global variables
4832 2008-03-11 Philip Van Hoof <me@pvanhoof.be>
4834 * tools/scannerlexer.l:
4836 * tests/parser/Foo-expected.gidl:
4837 * tests/parser/foo.c:
4838 * tests/parser/Makefile.am:
4839 * tests/parser/foo-object.h:
4841 Added a few extra tests. Which resulted in finding a few
4842 bugs. Which resulted in me fixing those bugs
4844 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
4846 * tools/gidlcompilercontext.c: (g_idl_compiler_write_dir_entry),
4847 (g_idl_compiler_write_xref_entry), (g_idl_compiler_add_xref):
4848 Add some comments for strings into generated output for
4851 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
4853 * tools/gidlcompilercontext.c: (write_compiled):
4854 Write out the shlibs variable before writing out the strings
4855 length. Fixes compiler warning when using '-l' flag with
4858 2008-03-11 Johan Dahlin <johan@gnome.org>
4860 * tests/parser/Foo-expected.gidl:
4861 * tests/parser/foo-object.h:
4864 * tools/scannerlexer.l:
4865 Add support for parsing return arguments. Add support for
4866 caller-owns return types.
4867 Patch by Philip Van Hoof.
4869 * tools/scannerparser.y:
4870 Remove parsing of the @deprecated syntax used in headers.
4871 We will support gtk-doc deprecation in the future instead.
4873 2008-03-11 Johan Dahlin <johan@gnome.org>
4875 * tools/compiler.c (main): Coding style fixes
4877 2008-03-10 Johan Dahlin <johan@gnome.org>
4880 Add GCOV_LIBS to GILIBS
4882 2008-03-10 Johan Dahlin <johan@gnome.org>
4884 * tests/parser/Foo-expected.gidl:
4885 * tests/parser/foo.c:
4886 Rename null-ok to direction=out
4888 2008-03-10 Philip Van Hoof <me@pvanhoof.be>
4890 reviewed and extensively tested by Johan
4892 * tests/parser/Foo-expected.gidl:
4893 * tests/parser/foo-object.h:
4894 * tests/parser/foo.c:
4897 * tools/gidlwriter.c:
4900 * tools/scannerlexer.l:
4901 * tools/scannerparser.y:
4903 Add support for scanning for gtk-doc comments inside
4904 C source files. Add tests
4906 2008-03-10 Johan Dahlin <johan@gnome.org>
4908 * tests/parser/Makefile.am:
4909 * tests/parser/foo.c:
4912 * tools/scannerparser.y:
4913 Add an api to lex filenames.
4914 Lex all source .c files passed in on the command line.
4915 Scan sources in a test and a couple of private structures
4916 which should not be included in the generated gidl
4918 2008-03-10 Johan Dahlin <johan@gnome.org>
4920 * tests/invoke/Makefile.am: Make the generated metadata
4921 depend on the g-idl-compiler
4923 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
4925 * tools/gidlmodule.c
4926 * tools/gidlmodule.h
4929 Remove the old g-idl-compiler code.
4932 2008-02-22 Mark Doffman <mark.doffman@codethink.co.uk>
4934 * tools/quote-file.sh
4937 Move to using the 'C' struct compiler code.
4939 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
4941 * girepository/ginfo.c
4943 Change the way that external references with no namespace
4944 are dealt with. External references with no namespace
4945 are placed into the XML as-if they are a local reference.
4946 This is temporary, but helps with roundtrip tests.
4948 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
4950 * girepository/ginfo.c
4951 Add the ability to get the value of a constant of
4952 type TYPE_TAG_SYMBOL. In the case of a symbol the value
4953 is provided as a string.
4955 This would deal properly with:
4956 typedef char* random;
4957 const random = "A string";
4959 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
4961 * girepository/ginfo.c
4962 * girepository/girepository.h
4964 Add a function to check if an enum is registered or not.
4965 Previously anything testing this relied on the g-type
4966 string offset having a value of 0.
4968 * girepository/gmetadata.c
4969 * girepository/gmetadata.h
4971 Remove unneccesary or erroneous checks. There were two
4972 metadata validation checks which made sure that the blob
4973 sizes were the same as some magic numbers compiled into the code.
4974 This is wrong as it breaks any forwards compatibility that may
4977 Checks were also present that made sure that unregistered type
4978 blobs had a value of 0 in the g-type offset field. This is
4979 unneccessary. If a type blob is unregistered then any value
4980 in its g-type field is simply invalid.
4982 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
4984 * girepository/ginfo.c
4985 * girepository/gmetadata.c
4986 * girepository/gmetadata.h
4988 Change the metadata format to have a standard header
4989 for all the type blobs. Merge the SimpleTypeBlob
4990 and InterfaceTypeBlob into a union. A union of these
4991 two blobs existed previously but was not explicit
4992 in the metadata format.
4994 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
4996 * tools/gidlcompilercontext.c
4997 * tools/gidlcompilercontext.h
4998 * tools/gidlcompilerentrynode.c
4999 * tools/gidlcompilerentrynode.h
5000 * tools/gidlcompilertypenode.c
5001 * tools/gidlcompilertypenode.h
5003 Add code to compile a tree of GIdlNodes to
5004 a 'C' struct representing the metadata.
5005 This is to aid cross-compiling. Previously
5006 the g-idl-compiler created a binary blob with
5007 data written in the byte order and alignment
5008 of the tool rather than the intended target.
5010 Cleaned up and improved by Johan and Robert :-)
5012 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
5014 * girepository/ginvoke.c
5015 * girepository/girepository.h
5016 * girepository/gmetadata.c
5017 * girepository/gmetadata.h
5019 * tools/gidlparser.c
5020 Modify TYPE_TAG_INTERFACE to TYPE_TAG_SYMBOL
5021 to avoid confusion with the interface blob.
5024 * tools/gidlparser.c
5025 Remove magic numbers and replace with type-tag
5026 enumeration symbols.
5028 * girepository/gmetadata.c
5029 Add validate declaration.
5031 2008-03-10 Jürg Billeter <j@bitron.ch>
5033 * tools/gidlparser.c: (parse_type_internal):
5034 * tools/scannerlexer.l:
5035 * tools/scannerparser.y:
5036 Support C99 _Bool type in scanner.
5038 2008-03-10 Jürg Billeter <j@bitron.ch>
5040 * tests/parser/Foo-expected.gidl:
5041 * tests/parser/foo-object.h:
5042 * tests/parser/foo.c: (foo_enum_method):
5043 * tools/scanner.c: (g_igenerator_process_function_symbol):
5044 Don't skip functions that are defined in the namespace of a type
5045 that doesn't support methods, as for example enums.
5047 2008-03-10 Johan Dahlin <johan@gnome.org>
5049 * gidl.dtd: Remove, we're using relaxng for now
5051 * tests/parser/Foo-expected.gidl:
5052 * tests/parser/foo-object.h:
5053 * tests/parser/foo.c:
5054 Rename the enum/flags get_type functions to include the whole type.
5056 2008-03-08 Marc-Andre Lureau <marcandre.lureau@gmail.com>
5058 * tools/gidlwriter.c (enum_generate): added "type-name",
5059 "get-type" and "deprecated" missing arguments.
5060 * tests/parser/Foo-expected.gidl:
5061 * tests/parser/foo-object.h: test enum type, and no type.
5063 2008-03-06 Johan Dahlin <jdahlin@async.com.br>
5066 Consistent checks, add missing 'test'
5068 2008-03-05 Havoc Pennington <hp@redhat.com>
5070 * configure.ac: Take advantage of a libffi.pc if one exists, as it
5071 does on Fedora 8. Make libffi a hard requirement, since it was in
5072 practice anyway (was not really conditional in the code or
5073 makefile, only in configure).
5075 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
5077 reviewed by: Rob Taylor <rob.taylor@codethink.co.uk>
5078 reviewed by: Johan Dahlin <johan@gnome.org>
5080 * tests/Makefile.am:
5081 * tests/roundtrips.sh:
5082 Modify the roundtrips test so that they do not use the
5083 --raw option of the gidl compiler but instead compile a
5084 shared library to use with g_module.
5086 * tests/invoke/Makefile.am:
5087 * tests/invoke/invoke.c:
5088 Modify the invoke tests to build a shared library rather
5089 than use the --raw option.
5091 * tests/invoke/invoke-namespace-find.sh: Removed:
5092 Noone knows why this was here, so removed.
5094 2008-02-19 Rob Taylor <rob.taylor@codethink.co.uk>
5096 * tools/scanner.c: (g_igenerator_process_function_symbol):
5097 Move g_idl_node_can_have_member test later, as it broke spotting
5098 get_type's for nodes that can't have members.
5100 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
5103 * tools/gidlnode.c: (g_idl_node_can_have_member):
5104 Add g_idl_node_can_have_member.
5106 * tools/scanner.c: (g_igenerator_process_function_symbol):
5107 Use g_idl_node_can_have_member to test if we should add a function
5108 as a member of the type node.
5110 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
5112 * gidl/GLib.gidl: Renamed to gidl/gobject-2.0.gidl:
5114 * tests/parser/Makefile.am:
5115 Rename GLib.gidl to gobject-2.0.gidl and install in /usr/share/gidl.
5117 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
5119 * tools/scanner.c: (main):
5120 Ignore -pthread when passed to g-idl-scanner.
5122 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
5124 * tools/grealpath.h: Added:
5125 * tools/scanner.c: (main):
5126 * tools/scannerlexer.l:
5127 * tools/Makefile.am:
5128 Always use absolute paths with symbolic links resolved when
5129 comparing filenames.
5131 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
5133 * gobject-introspection.pc.in:
5134 Provide variables for g-idl-parser, scanner and compiler in the
5137 2008-02-13 Rob Taylor <rob.taylor@codethink.co.uk>
5140 * girepository/Makefile.am:
5141 * tools/Makefile.am:
5142 Rename GCOV_SOURCES to GCOVSOURCES to top automake complaining.
5144 2008-02-10 Johan Dahlin <johan@gnome.org>
5146 * tests/parser/Foo-expected.gidl:
5147 * tests/parser/foo-object.h:
5148 * tests/parser/foo.c: (foo_boxed_copy), (foo_boxed_free),
5149 (foo_boxed_get_type), (foo_boxed_new), (foo_boxed_method):
5152 2008-02-10 Johan Dahlin <johan@gnome.org>
5154 * tests/parser/Foo-expected.gidl:
5155 * tests/parser/foo-object.h:
5156 * tests/parser/foo.c: (foo_enum_get_type), (foo_flags_get_type):
5157 Add enum and flags test.
5159 2008-02-10 Johan Dahlin <johan@gnome.org>
5163 * girepository/Makefile.am:
5164 Make 'make distcheck' work again.
5166 2008-02-10 Johan Dahlin <johan@gnome.org>
5168 * m4/Makefile.am (EXTRA_DIST): its called as-compiler-flag.m4,
5171 * tests/parser/Makefile.am: Only create Foo.gidl when running make
5172 check, eg exclude it from BUILT_SOURCES.
5174 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
5179 * girepository/Makefile.am:
5180 * m4/Makefile.am: Added:
5181 * m4/as-compiler-flag.m4: Added:
5182 * m4/gcov.m4: Added:
5183 * tools/Makefile.am:
5184 Add ability to generate a coverage report.
5185 Adds configure option --enable-gcov and make rule 'check-coverage'.
5187 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
5191 * gidl/Makefile.am: Added:
5192 * girepository/Makefile.am: Added:
5193 * src/Makefile.am: Renamed to tools/Makefile.am:
5194 * src/compiler.c: Renamed to tools/compiler.c:
5195 * src/g-idl-offsets.pl: Renamed to tools/g-idl-offsets.pl:
5196 * src/generate.c: Renamed to tools/generate.c:
5197 * src/gidlmodule.c: Renamed to tools/gidlmodule.c:
5198 * src/gidlmodule.h: Renamed to tools/gidlmodule.h:
5199 * src/gidlnode.c: Renamed to tools/gidlnode.c:
5200 * src/gidlnode.h: Renamed to tools/gidlnode.h:
5201 * src/gidlparser.c: Renamed to tools/gidlparser.c:
5202 * src/gidlparser.h: Renamed to tools/gidlparser.h:
5203 * src/gidlwriter.c: Renamed to tools/gidlwriter.c:
5204 * src/gidlwriter.h: Renamed to tools/gidlwriter.h:
5205 * src/ginfo.c: Renamed to girepository/ginfo.c:
5206 * src/ginvoke.c: Renamed to girepository/ginvoke.c:
5207 * src/girepository.c: Renamed to girepository/girepository.c:
5208 * src/girepository.h: Renamed to girepository/girepository.h:
5209 * src/gmetadata.c: Renamed to girepository/gmetadata.c:
5210 * src/gmetadata.h: Renamed to girepository/gmetadata.h:
5211 * src/scanner.c: Renamed to tools/scanner.c:
5212 * src/scanner.h: Renamed to tools/scanner.h:
5213 * src/scannerlexer.l: Renamed to tools/scannerlexer.l:
5214 * src/scannerparser.y: Renamed to tools/scannerparser.y:
5215 * tests/invoke/Makefile.am:
5216 Split src/ into girepository/ and tools/
5220 * girepository/Makefile.am:
5221 * tests/Makefile.am:
5222 * tests/invoke/Makefile.am:
5223 * tests/parser/Makefile.am:
5224 * tests/roundtrips.sh:
5225 * tools/Makefile.am:
5226 Make distcheck work.
5228 2008-02-04 Rob Taylor <rob.taylor@codethink.co.uk>
5230 * tests/invoke/invoke.c: (main):
5231 * tests/invoke/testfns.c: (test6), (test7):
5232 * tests/invoke/testfns.xml:
5233 Add tests for invokation with a GList argument.
5234 Also tests caller-owns return values.
5236 2008-02-04 Rob Taylor <robtaylor@floopily.org>
5239 Add some documentation for GICallableInfo
5241 2008-02-01 Mark Doffman <mark.doffman@codethink.co.uk>
5244 Correct syntax errors in the DTD file.
5246 * relaxng/c-types.xml:
5247 * relaxng/g-types.xml:
5249 Add a RelaxNG specification for the GObject Introspection XML data.
5250 The Specification has validated all of the test files.
5252 2008-01-25 Rob Taylor <robtaylor@floopily.org>
5254 * tests/roundtrips.sh:
5255 * tests/struct.test:
5256 Add roundtrip tests for structs.
5258 2008-01-11 Johan Dahlin <johan@gnome.org>
5260 * src/scanner.c (g_igenerator_process_function_symbol):
5261 Refactor out g_idle_node_add_member.
5262 (create_node_from_gtype, create_node_from_ctype):
5263 Use case instead of if...else
5264 (get_type_from_type_id):
5265 Rename to create_node_from_gtype
5266 (get_type_from_ctype):
5267 Rename to create_node_from_ctype
5269 Rename ginode -> node, gitype -> type, gifunc -> func.
5271 * src/gidlnode.c (g_idl_node_add_member, g_idl_node_cmp):
5272 Two new functions, refactor out of scanner.c
5274 * src/scanner.c: (g_igenerator_process_function_symbol):
5275 * src/scannerlexer.l:
5276 Do not save the content of the deprecated variable, only
5279 2008-01-11 Johan Dahlin <johan@gnome.org>
5281 * tests/parser/foo-object.h: Add a couple of comment parser tests.
5283 2008-01-11 Jürg Billeter <j@bitron.ch>
5285 * src/scannerlexer.l:
5286 Fix GTK-Doc parsing.
5288 2008-01-11 Jürg Billeter <j@bitron.ch>
5290 * src/scannerlexer.l:
5291 Fix GTK-Doc parsing.
5293 2008-01-11 Jürg Billeter <j@bitron.ch>
5295 * src/scanner.c: (lookup_symbol):
5296 Return unresolved name if we find unknown symbol.
5298 2008-01-11 Jürg Billeter <j@bitron.ch>
5300 * src/scanner.c: (g_igenerator_generate):
5301 Initialize GObject to fix scanning interface properties.
5303 * tests/parser/Foo-expected.gidl:
5304 * tests/parser/foo-object.h:
5305 * tests/parser/foo.c: (foo_interface_get_type):
5306 Test interfaces with GObject prerequisite.
5308 * tests/parser/Makefile.am:
5309 Set G_DEBUG=fatal_warnings to abort test on warnings and criticals.
5311 2007-12-27 Johan Dahlin <johan@gnome.org>
5313 * src/scannerlexer.l:
5314 Parse gtk-doc comments.
5316 * src/gidlwriter.c: (function_generate):
5317 Reorganize, avoid duplication and add support for
5318 writing deprecated functions.
5320 * src/scannerparser.y:
5322 Add new structure CDirective and functions to create/free them.
5324 * src/scanner.c: (g_igenerator_process_function_symbol),
5325 (g_igenerator_process_unregistered_struct_typedef),
5326 (g_igenerator_process_struct_typedef),
5327 (g_igenerator_process_union_typedef),
5328 (g_igenerator_process_enum_typedef),
5329 (g_igenerator_process_function_typedef), (g_igenerator_add_symbol),
5330 (g_igenerator_start_preprocessor):
5331 Parse @deprecated directive for functions.
5332 Remove some more C99isms.
5333 Send in -C to cpp to avoid stripping comments.
5335 * tests/parser/foo-object.h:
5336 * tests/parser/Foo-expected.gidl:
5337 Add deprecated directive
5339 2007-12-27 Johan Dahlin <johan@gnome.org>
5341 * src/scannerlexer.l (intsuffix): Add emacs mode line and
5342 escape ' and " so it looks more like C.
5345 Unlink temporary file used.
5347 2007-12-27 Johan Dahlin <johan@gnome.org>
5349 * src/scanner.c: (g_igenerator_new), (g_igenerator_free),
5350 (g_igenerator_start_preprocessor), (main):
5352 * src/scannerparser.y:
5353 Plug a couple of simple memory leaks.
5355 2007-12-27 Johan Dahlin <johan@gnome.org>
5357 * src/scanner.c: (g_igenerator_parse_macros),
5358 (g_igenerator_start_preprocessor), (g_igenerator_set_verbose),
5361 * src/scannerparser.y:
5362 * tests/parser/Makefile.am:
5364 Improve error reporting, return when the preprocessor fails.
5365 Add a verbose parameter, to aid debugging.
5366 Revert to using a temporary file to communicate between the
5367 preprocessor and the parser, because we need to wait for
5368 the exit code from the pre-processor before starting to parse.
5370 2007-12-16 Johan Dahlin <jdahlin@async.com.br>
5372 * src/Makefile.am: Rename clexer.l to scannerlexer.l and
5373 cparser.y to scannerparser.y
5375 2007-12-11 Johan Dahlin <johan@gnome.org>
5379 * src/scanner.c: (g_igenerator_new):
5381 Get rid of the global the_generator variable.
5383 2007-12-10 Johan Dahlin <johan@gnome.org>
5385 * src/scanner.c (main): Add an output option,
5386 add checks for required parameters
5389 set BUILD_SOURCES and CLEANFILES properly
5391 * src/gidlwriter.c: (g_writer_write_inline), (g_writer_write),
5392 (g_writer_write_indent), (g_writer_write_unindent),
5393 (field_generate), (value_generate), (constant_generate),
5394 (property_generate), (function_generate), (vfunc_generate),
5395 (signal_generate), (interface_generate), (struct_generate),
5396 (union_generate), (boxed_generate), (enum_generate),
5397 (node_generate), (g_writer_write_module), (g_idl_writer_save_file):
5399 * src/scanner.c: (g_igenerator_generate):
5401 * src/scannerwriter.c:
5403 Refactor scannerwriter to only be tied to a GIdlModule and move
5404 it (again!) to gidlwriter.c. Change the writer function to take
5407 2007-12-10 Johan Dahlin <johan@gnome.org>
5410 * src/scanner.c: (g_igenerator_generate):
5412 * src/scannerwriter.c: (g_igenerator_write_inline),
5413 (g_igenerator_write), (g_igenerator_write_indent),
5414 (g_igenerator_write_unindent), (field_generate), (value_generate),
5415 (constant_generate), (property_generate), (function_generate),
5416 (vfunc_generate), (signal_generate), (interface_generate),
5417 (struct_generate), (union_generate), (boxed_generate),
5418 (enum_generate), (node_generate), (module_generate),
5419 (g_scanner_write_file):
5421 Move the scanner gidl writing to a separate source file.
5423 2007-12-10 Johan Dahlin <johan@gnome.org>
5428 Move over all CType construction functions.
5430 * tests/parser/Makefile.am:
5431 Be verbose when printing parsing tests results.
5433 2007-12-10 Johan Dahlin <johan@gnome.org>
5435 * src/scanner.c (g_igenerator_start_preprocessor): Refactor
5436 preprocessor handling to here. Start cpp insteado of cc -E,
5437 always include -U__GNUC__, since it's specific to the preprocessor
5440 * tests/parser/Makefile.am (check-local): Silent diff and skip
5441 -U__GNUC__ which is always defined now
5443 2007-12-10 Johan Dahlin,,, <jdahlin@plasttroll>
5445 reviewed by: <delete if not using a buddy>
5447 * src/scanner.c: (g_igenerator_start_preprocessor), (main):
5448 * tests/parser/Makefile.am:
5450 2007-12-09 Johan Dahlin <johan@gnome.org>
5453 Use GOption for command line options.
5454 (g_igenerator_new, main): Simplify constructor and they way
5455 parameters are passed into it.
5461 * src/gen-introspect.c:
5462 * src/gen-introspect.h:
5464 Rename gen-introspect.[ch] to scanner.[ch]
5466 2007-12-09 Johan Dahlin <johan@gnome.org>
5470 * src/Makefile.am: Rename gen-introspect to g-idl-scanner,
5471 don't make the repository library and the other utilites link against
5474 * src/gen-introspect.c: (g_igenerator_create_object),
5475 (g_igenerator_create_interface), (g_igenerator_create_boxed),
5476 (g_igenerator_create_enum), (g_igenerator_create_flags),
5477 (g_igenerator_process_module_symbol),
5478 (g_igenerator_process_module), (g_igenerator_generate), (main):
5479 * src/gen-introspect.h:
5480 Refactor g_igenerator_process_types into smaller pieces.
5482 * tests/parser/Makefile.am:
5483 Depend on the gen-introspect binary
5485 2007-12-09 Johan Dahlin <johan@gnome.org>
5487 * src/gen-introspect.c (g_igenerator_process_types):
5488 Break into smaller pieces, one for each generated node type.
5490 2007-12-08 Johan Dahlin <johan@gnome.org>
5492 * src/gen-introspect.c: (g_igenerator_process_types),
5493 (g_igenerator_add_module):
5494 * tests/parser/Foo-expected.gidl:
5495 * tests/parser/foo-object.h:
5496 * tests/parser/foo.c: (foo_subobject_class_init),
5497 (foo_subobject_init):
5499 Add a subobject test and make sure to register defined classes
5500 in the lookup symbol hash table.
5502 2007-12-08 Johan Dahlin <johan@gnome.org>
5506 * src/gen-introspect.c: (g_igenerator_new), (lookup_symbol),
5507 (g_igenerator_process_types), (g_igenerator_add_module),
5508 (g_igenerator_add_include_idl), (main):
5509 * src/gen-introspect.h:
5510 * tests/parser/Makefile.am:
5511 * tests/parser/Foo-expected.gidl:
5513 Change the gen-introspect to generate namespaced module names,
5514 such as GLib.Object instead of GObject.
5515 Add a GLib.gidl which introduces GLib.Object and GLib.InitiallyUnowned,
5516 add a --include-idl parameter to gen-introspect,
5517 and update the parser test.
5519 2007-12-08 Johan Dahlin <johan@gnome.org>
5521 * src/gen-introspect.c:
5522 Move main to the end of the file and attempt to make it valid
5525 * tests/parser/Makefile.am (BUILT_SOURCES): Remove .repo here,
5526 we're not quite ready to generate metadata yet.
5531 Add a simple gen-introspect parser test
5533 2007-12-06 Gustavo J. A. M. Carneiro <gjc@gnome.org>
5535 reviewed by: Johan Dahlin <johan@gnome.org>
5538 * gobject-introspection.pc.in:
5540 * src/compiler.c: (format_output), (write_out_metadata), (main):
5541 * src/gen-introspect.c: (main):
5542 * src/gen-introspect.h:
5543 * src/generate.c: (write_callable_info), (write_repository),
5544 (load_metadata), (main):
5545 * src/gidlmodule.c: (g_idl_module_new),
5546 (g_idl_module_build_metadata):
5548 * src/gidlparser.c: (start_element_handler):
5549 * src/ginfo.c: (g_info_new), (g_info_from_entry),
5550 (g_base_info_get_name), (g_base_info_get_namespace),
5551 (g_base_info_is_deprecated), (g_base_info_get_annotation),
5552 (g_base_info_get_metadata), (g_function_info_get_symbol),
5553 (g_function_info_get_flags), (g_function_info_get_property),
5554 (g_function_info_get_vfunc), (signature_offset), (g_type_info_new),
5555 (g_callable_info_may_return_null),
5556 (g_callable_info_get_caller_owns), (g_callable_info_get_n_args),
5557 (g_callable_info_get_arg), (g_arg_info_get_direction),
5558 (g_arg_info_is_return_value), (g_arg_info_is_dipper),
5559 (g_arg_info_is_optional), (g_arg_info_may_be_null),
5560 (g_arg_info_get_ownership_transfer), (g_type_info_is_pointer),
5561 (g_type_info_get_tag), (g_type_info_get_param_type),
5562 (g_type_info_get_interface), (g_type_info_get_array_length),
5563 (g_type_info_is_zero_terminated),
5564 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
5565 (g_error_domain_info_get_quark), (g_error_domain_info_get_codes),
5566 (g_value_info_get_value), (g_field_info_get_flags),
5567 (g_field_info_get_size), (g_field_info_get_offset),
5568 (g_registered_type_info_get_type_name),
5569 (g_registered_type_info_get_type_init),
5570 (g_struct_info_get_n_fields), (g_struct_info_get_field),
5571 (g_struct_info_get_n_methods), (g_struct_info_get_method),
5572 (find_method), (g_struct_info_find_method),
5573 (g_enum_info_get_n_values), (g_enum_info_get_value),
5574 (g_object_info_get_parent), (g_object_info_get_type_name),
5575 (g_object_info_get_type_init), (g_object_info_get_n_interfaces),
5576 (g_object_info_get_interface), (g_object_info_get_n_fields),
5577 (g_object_info_get_field), (g_object_info_get_n_properties),
5578 (g_object_info_get_property), (g_object_info_get_n_methods),
5579 (g_object_info_get_method), (g_object_info_find_method),
5580 (g_object_info_get_n_signals), (g_object_info_get_signal),
5581 (g_object_info_get_n_vfuncs), (g_object_info_get_vfunc),
5582 (g_object_info_get_n_constants), (g_object_info_get_constant),
5583 (g_interface_info_get_n_prerequisites),
5584 (g_interface_info_get_prerequisite),
5585 (g_interface_info_get_n_properties),
5586 (g_interface_info_get_property), (g_interface_info_get_n_methods),
5587 (g_interface_info_get_method), (g_interface_info_find_method),
5588 (g_interface_info_get_n_signals), (g_interface_info_get_signal),
5589 (g_interface_info_get_n_vfuncs), (g_interface_info_get_vfunc),
5590 (g_interface_info_get_n_constants),
5591 (g_interface_info_get_constant), (g_property_info_get_flags),
5592 (g_signal_info_get_flags), (g_signal_info_get_class_closure),
5593 (g_signal_info_true_stops_emit), (g_vfunc_info_get_flags),
5594 (g_vfunc_info_get_offset), (g_vfunc_info_get_signal),
5595 (g_constant_info_get_value), (g_union_info_get_n_fields),
5596 (g_union_info_get_field), (g_union_info_get_n_methods),
5597 (g_union_info_get_method), (g_union_info_is_discriminated),
5598 (g_union_info_get_discriminator_offset),
5599 (g_union_info_get_discriminator):
5600 * src/ginvoke.c: (g_function_info_invoke):
5601 * src/girepository.c: (g_irepository_register),
5602 (g_irepository_unregister), (g_irepository_get_default),
5603 (count_interfaces), (g_irepository_get_n_infos), (find_interface),
5604 (g_irepository_get_info), (g_irepository_find_by_name),
5605 (g_irepository_get_shared_library),
5606 (g_irepository_build_search_path), (g_irepository_register_file),
5607 (g_irepository_error_quark):
5608 * src/girepository.h:
5609 * src/gmetadata.c: (g_metadata_get_dir_entry),
5610 (g_metadata_check_sanity), (validate_header),
5611 (validate_array_type_blob), (validate_iface_type_blob),
5612 (validate_param_type_blob), (validate_error_type_blob),
5613 (validate_type_blob), (validate_arg_blob),
5614 (validate_signature_blob), (validate_function_blob),
5615 (validate_callback_blob), (validate_constant_blob),
5616 (validate_value_blob), (validate_field_blob),
5617 (validate_property_blob), (validate_signal_blob),
5618 (validate_vfunc_blob), (validate_struct_blob),
5619 (validate_enum_blob), (validate_object_blob),
5620 (validate_interface_blob), (validate_errordomain_blob),
5621 (validate_union_blob), (validate_blob), (validate_directory),
5622 (validate_annotations), (g_metadata_validate), (_g_metadata_init),
5623 (g_metadata_new_from_memory), (g_metadata_new_from_const_memory),
5624 (g_metadata_new_from_mapped_file), (g_metadata_free),
5625 (g_metadata_set_module), (g_metadata_get_namespace):
5627 * tests/Makefile.am:
5628 * tests/invoke/Makefile.am:
5629 * tests/invoke/invoke-namespace-find.sh:
5630 * tests/invoke/invoke.c: (main):
5632 Add a namespace/shared library mapping. fixes #313268.
5634 2007-12-03 Johan Dahlin <johan@gnome.org>
5636 * src/gidlparser.c (parse_type_internal): Disable char/gchar and
5639 2007-11-30 Jürg Billeter <j@bitron.ch>
5645 * src/gen-introspect.c: (g_idl_node_cmp), (g_igenerator_new),
5646 (g_igenerator_write_inline), (g_igenerator_write),
5647 (g_igenerator_write_indent), (g_igenerator_write_unindent),
5648 (field_generate), (value_generate), (constant_generate),
5649 (property_generate), (function_generate), (vfunc_generate),
5650 (signal_generate), (interface_generate), (struct_generate),
5651 (union_generate), (boxed_generate), (enum_generate),
5652 (node_generate), (module_generate), (get_type_from_type_id),
5653 (str_replace), (g_igenerator_process_properties),
5654 (g_igenerator_process_signals), (g_igenerator_process_types),
5655 (get_type_from_ctype), (g_igenerator_process_function_symbol),
5656 (g_igenerator_process_unregistered_struct_typedef),
5657 (g_igenerator_process_struct_typedef),
5658 (g_igenerator_process_union_typedef),
5659 (g_igenerator_process_enum_typedef),
5660 (g_igenerator_process_function_typedef),
5661 (g_igenerator_process_constant), (g_igenerator_process_symbols),
5662 (g_igenerator_add_symbol), (g_igenerator_is_typedef),
5663 (g_igenerator_generate), (main), (csymbol_new),
5664 (csymbol_get_const_boolean), (ctype_new), (ctype_copy),
5665 (cbasic_type_new), (ctypedef_new), (cstruct_new), (cunion_new),
5666 (cenum_new), (cpointer_new), (carray_new), (cfunction_new),
5667 (eat_hspace), (eat_line), (read_identifier),
5668 (g_igenerator_parse_macros):
5669 * src/gen-introspect.h:
5671 Import gen-introspect to generate introspection information by
5674 2007-11-30 Jürg Billeter <j@bitron.ch>
5676 * src/gidlnode.c: (g_idl_node_new): support creating callback nodes
5678 2007-11-30 Jürg Billeter <j@bitron.ch>
5680 * src/gidlparser.c: (end_element_handler): Don't leave requires
5683 2007-11-29 Johan Dahlin <johan@gnome.org>
5685 * src/gidlparser.c (parse_type_internal): Add char,
5686 gchar and guchar to the builtin types.
5688 2007-11-26 Johan Dahlin <johan@gnome.org>
5690 * src/ginfo.c: (g_object_info_get_type_name),
5691 (g_object_info_get_type_init):
5692 * src/girepository.c: (g_irepository_is_registered):
5693 * src/girepository.h:
5695 Add g_object_info_get_type_name, g_object_info_get_type_init and
5696 g_irepository_is_registered.
5698 2006-08-14 Jürg Billeter <j@bitron.ch>
5700 * src/gidlparser.c: (end_element_handler): Don't leave
5701 namespace and implements states too early.
5704 2007-11-26 Johan Dahlin <johan@gnome.org>
5706 * src/gmetadata.c (validate_struct_blob):
5707 pass blob_type to validate_function_blob instead of
5708 hard-coding BLOB_TYPE_STRUCT.
5710 Patch by Torsten Schoenfeld, fixes #314190
5712 2006-10-03 Torsten Schoenfeld <tsch@cvs.gnome.org>
5714 * src/compiler.c, src/generate.c, src/gidlnode.c,
5715 src/gidlparser.c, src/ginfo.c, src/girepository.c,
5716 tests/invoke/invoke.c, test/invoke/testfns.c: Hush compiler
5717 warnings about return values, signedness mismatches, unused
5718 variables, and unhandles enum values in switch statements.
5720 * tests/invoke/Makefile.am: Don't install the invoke test program.
5721 Add -I ../../src to the cflags used for the test functions files.
5723 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
5725 * src/girepository.h: Export g_invoke_error_quark.
5727 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
5729 * src/ginvoke.c: Remove the fallback implementation of
5730 g_function_info_invoke since we now formally depend on libffi.
5732 2005-07-25 Matthias Clasen <mclasen@redhat.com>
5734 * src/Makefile, tests/Makefile, tests/invoke/Makefile:
5735 Remove these files from cvs, as they are now generated.
5737 * src/gmetadata.c (validate_iface_type_blob): Don't
5738 complain if blob->pointer is not set, since that
5739 happens for enum and flag types. (#308935, Gustavo
5742 * Commit an autoconf-conversion patch by
5743 Gustavo Carneiro (#308708)
5745 2005-05-24 Matthias Clasen <mclasen@redhat.com>
5747 * src/compiler.c (main): Use it here to validate
5748 the generated metadata.
5750 * src/gmetadata.[hc]: Add code to validate a
5753 * metadata-format.txt: Updates
5755 2005-05-22 Matthias Clasen <mclasen@redhat.com>
5757 * tests/*: Add struct offsets to field and vfunc
5760 * src/generate.c (write_vfunc_info): Write offset
5761 information for vfuncs.
5763 * src/gidlnode.c (g_idl_node_build_metadata): Write
5764 the struct offsets into the metadata.
5766 * src/gidlparser.c: Parse the offset attributes of
5767 field and vfunc elements.
5769 * src/gidlnode.h: Add offset members to field and
5772 2005-05-21 Matthias Clasen <mclasen@redhat.com>
5776 * gidl.dtd: Updates.
5778 * src/g-idl-offsets.pl: A perl script which reads a .gidl
5779 file, creates, compiles and runs a C file, and folds the
5780 resulting struct offsets back into the .gidl file.
5782 2005-05-20 Matthias Clasen <mclasen@redhat.com>
5784 * src/gidlparser.c (start_field): Make fields in objects
5787 * src/gidlmodule.c: Include string.h
5792 * metadata-format.txt: Cleanup basic types.
5793 * src/*: Adapt to the changes.
5794 * tests/*: Adapt to the changes.
5795 * examples/gdk-pixbuf.gidl: Adapt to the changes.
5797 * src/gidlnode.c (g_idl_node_get_size): Report the correct
5798 size for enum blobs.
5799 (g_idl_node_get_full_size): Report the correct size for
5802 * src/gidlmodule.c (g_idl_module_build_metadata): Add some
5803 error checking for blob sizes.
5805 2005-05-19 Matthias Clasen <mclasen@redhat.com>
5807 * src/gidlnode.c (g_idl_node_build_metadata): Correctly handle
5808 interface types for which is_pointer is FALSE, e.g. enums.
5810 * src/gidlnode.c (g_idl_node_get_full_size)
5811 * src/gidlparser.c (parse_type_internal):
5812 * src/generate.c (write_type_info): Support unspecialized
5813 lists, hashtables and errors. Also emit a '*' after these.
5817 2005-05-17 Matthias Clasen <mclasen@redhat.com>
5821 * metadata-format.txt: Cleanups by Maciej Katafiasz.
5823 2005-05-15 Matthias Clasen <mclasen@redhat.com>
5825 * src/*.c: Change the directory to be addressed by
5826 1-based indexes, and use an index of zero to mean
5829 2005-05-15 Matthias Clasen <mclasen@redhat.com>
5831 * tests/roundtrips.sh (SIMPLE_TESTS): Add union.test.
5833 * tests/union.test: Add a union test.
5835 * src/generate.c: Handle unions.
5837 * src/girepository.h:
5838 * src/ginfo.c: Add GIUnionInfo and functions to access it.
5840 * src/gidlnode.c: Handle GIdlNodeUnion nodes.
5842 * src/gidlparser.c (start_union): Parse <union> elements.
5844 * src/gidlnode.h: Add a GIdlNodeUnion.
5846 * gidl.dtd: Add a <union> element.
5848 * src/gmetadata.c (g_metadata_check_sanity): Check
5851 * src/gmetadata.h: Add union_blob_size to Header,
5854 * metadata-format.txt: Add a UnionBlob.
5856 2005-05-13 Matthias Clasen <mclasen@redhat.com>
5858 * tests/*: Update testcases.
5860 * src/generate.c (write_callable_info): Don't forget to
5861 write transfer and null-ok attributes for return types
5864 * src/girepository.h:
5865 * src/ginfo.c (g_callable_info_may_return_null):
5866 New function to find out if a function may return NULL.
5868 * src/compiler.c (format_output): Make the generated
5871 * README: Point to a recent libffi snapshot.
5873 * tests/invoke/*: Some invoke tests.
5875 * src/Makefile: Add ginvoke.c and the necessary
5878 * src/girepository.h (g_function_info_invoke): Add
5881 * src/ginvoke.c (g_function_info_invoke): Initial
5882 implementation of invoke functionality based on libffi.
5884 * src/gidlnode.c (g_idl_node_build_metadata): Pass the
5885 strings and types hash tables in the right order when
5887 (find_entry_node): Free the name parts.
5889 2005-05-12 Johan Dahlin <johan@gnome.org>
5891 * src/generate.c: Generate consistent end tags.
5895 2005-05-12 Matthias Clasen <mclasen@redhat.com>
5899 * src/gidlparser.c (start_function): Actually add
5900 methods to objects. (Steven Walter)
5902 * src/girepository.h:
5903 * src/ginfo.c: Rename Transfer and Direction to
5904 GITransfer and GIDirection. (Torsten Schoenfeld)
5906 * tests/*: Make tests work with the changes in name
5909 * src/gidlnode.c (find_entry_node): Parse qualified
5910 names and generate xref nodes for them if needed. Don't
5911 require all modules to be loaded any more.
5913 * src/gidlmodule.c (g_idl_module_build_metadata): Choke
5916 * src/ginfo.c (g_object_info_get_parent): Return NULL
5917 if blob->parent is 0. Still need to make sure index
5920 * src/generate.c: Generate qualified names when
5921 referring to non-local types. Emit transfer attribute
5924 * src/compiler.c (format_output): Put the function
5925 attributes where gcc accepts them.
5927 2005-05-11 Matthias Clasen <mclasen@redhat.com>
5929 * src/compiler.c (main): Add a --verbose cmdline option
5930 and only log messages if it is specified.
5933 * src/gidlnode.c (init_stats, dump_stats): Collect some
5934 statistics on string and type sharing.
5936 * src/gidlmodule.c (g_idl_module_build_metadata): Use
5937 g_message() instead of fprintf().
5939 * src/gidlnode.c (g_idl_node_free): Make this more robust.
5940 (g_idl_node_get_size): Implement for structs.
5941 (g_idl_node_get_full_size): Handle parent being NULL.
5942 (serialize_type): Handle lookup failures more gracefully.
5944 2005-05-10 Matthias Clasen <mclasen@redhat.com>
5946 * src/gidlnode.c (g_idl_node_get_full_size): Correct the
5947 size calculation for 2-parameter types and for objects.
5949 * src/compiler.c: Add a cmdline option for debug output
5950 and install a log handler to implement it.
5951 * src/gidlnode.c: Add some debug spew.
5955 * src/gidlmodule.c (g_idl_module_build_metadata): Don't
5956 forget to count the module name when calculating the
5957 required size for the metadata.
5960 * src/gidlparser.c: Fix compiler warnings.
5962 2005-05-09 Matthias Clasen <mclasen@redhat.com>
5964 * src/compiler.c (main): Free the option context.
5966 * gidl.dtd: Clean up handling of names. All elements
5967 have a "name", only the elements corresponding to
5968 actual callable functions (function, method, constructor),
5969 have an additional "symbol" attribute holding the
5970 dlsym()-able function name.
5972 * src/generate.c: Adapt to generate xml matching the
5976 * src/gidlnode.c: Adapt to parse the new dtd.
5978 * tests/*.test: Adjust to the new dtd.
5980 * metadata-format.txt:
5981 * src/gmetadata.h: Remove the short_name field
5983 * src/gmetadata.c: Shrink size of ValueBlob to 12.
5984 * src/girepository.h:
5985 * src/ginfo.c (g_value_info_get_short_name): Removed
5987 2005-05-09 Matthias Clasen <mclasen@redhat.com>
5989 * gidl.dtd: Allow constructors for boxed types,
5990 patch by Jonathan Blandford.
5993 2005-05-09 Matthias Clasen <mclasen@redhat.com>
5995 * --- Initial import ---