1 2008-08-18 Johan Dahlin <johan@gnome.org>
3 * gir/gio-2.0-good.gir:
4 * gir/glib-2.0-good.gir:
5 * gir/gobject-2.0-good.gir:
8 2008-08-18 Johan Dahlin <johan@gnome.org>
11 * giscanner/girparser.py:
12 * giscanner/girwriter.py:
13 * giscanner/glibast.py:
14 * giscanner/glibtransformer.py:
15 * giscanner/transformer.py:
16 * tests/scanner/Foo-expected.gir:
17 * tests/scanner/foo-object.h:
18 * tests/scanner/utility-expected.gir:
19 * tests/scanner/utility.h:
20 Redo type resolving and validation.
21 Add a couple of new tests.
22 Patch mostly written by Colin.
24 2008-08-18 Johan Dahlin <johan@gnome.org>
27 * giscanner/girparser.py:
29 * giscanner/transformer.py:
30 Improve enum parsing for enums without a GType.
31 Make flags/enum references to other girs work
34 * tests/scanner/Makefile.am:
35 * tests/scanner/foo-object.h:
36 * tests/scanner/utility-expected.gir:
37 * tests/scanner/utility.h:
38 Add a new test for external enum references
40 2008-08-18 Johan Dahlin <johan@gnome.org>
42 * docs/global-module-registry.txt: Update
44 * tests/array.gir: Update with new type proposal
46 * girepository/girepository.c (g_type_tag_to_string):
47 * girepository/girepository.h:
48 * girepository/girnode.c (g_ir_node_get_full_size_internal),
50 * girepository/girnode.h:
51 Make enum serializing functions public. Clean up some whitespace.
53 2008-08-17 Johan Dahlin <johan@gnome.org>
55 * docs/global-module-registry.txt:
56 Add a document for an on disk module registry format
58 2008-08-17 Johan Dahlin <johan@gnome.org>
61 * gir/gio-2.0-good.gir:
64 2008-08-17 Johan Dahlin <johan@gnome.org>
67 * gir/glib-2.0-good.gir:
68 * gir/gobject-2.0-good.gir:
69 * giscanner/cgobject.py:
70 * giscanner/glibtransformer.py:
71 Regenerate GObject & GType.
72 Avoid warnings when generating gobject-2.0.gir.
73 Introspect a little more, and skip *_get_type functions.
75 2008-08-17 Colin Walters <walters@verbum.org>
77 * gir/glib-2.0.gir, gir/gobject-2.0.gir:
78 Rename to -good, always generate during build.
79 * gir/Makefile.am: Ensure .gir files dep on
81 * Makefile.am: Switch build order to ensure
82 the scanner is ready before we do gir/.
83 * tools/g-ir-scanner: Look for .git too.
85 2008-08-17 Johan Dahlin <johan@gnome.org>
87 * girepository/gtypelib.c (validate_enum_blob):
88 * giscanner/glibtransformer.py:
89 * giscanner/transformer.py:
90 Remove resolve_possible_typedefs, it was unused.
91 Allow multiple enum values of the sample value in an enum,
92 since it's actually pretty common.
93 Register enums so they can be resolved too.
95 2008-08-16 Johan Dahlin <johan@gnome.org>
97 * giscanner/girparser.py:
98 Parse enumeration/bitfield.
100 2008-08-16 Johan Dahlin <johan@gnome.org>
102 * giscanner/girparser.py:
105 2008-08-16 Johan Dahlin <johan@gnome.org>
107 * giscanner/glibtransformer.py:
108 Resolve type names for alias targets
109 * giscanner/transformer.py:
110 Skip FILE* parameters fow now
112 2008-08-16 Johan Dahlin <johan@gnome.org>
115 * gir/gobject-2.0.gir:
118 * tests/scanner/Makefile.am:
121 2008-08-15 Colin Walters <walters@verbum.org>
123 * giscanner/glibtransformer.py: Explicitly construct
124 new list, since we're deleting as we iterate.
125 Don't delete all structures which end in Class; just
126 ones which have a paired GObject.
127 Fix printing of type warning.
128 * giscanner/transformer.py: Make strip_namespace_object
129 be the identity function if it doesn't match the
132 2008-08-15 Colin Walters <walters@verbum.org>
134 * giscanner/cgobject.py: Define yet more argument
135 prototypes; fix prototype for g_type_fundamental.
137 2008-08-14 Johan Dahlin <johan@gnome.org>
140 * tests/constant.gir:
143 * tools/generate.c (write_struct_info):
144 Fix generator for constant/gobject/struct
146 2008-08-14 Johan Dahlin <johan@gnome.org>
150 * tools/generate.c (write_enum_info):
151 Fix generation of enum/bitfields
153 2008-08-14 Johan Dahlin <johan@gnome.org>
155 * girepository/girparser.c (start_field), (start_constant),
156 (start_type), (end_element_handler):
157 Clear up constant parsing
162 * tools/generate.c (write_callable_info), (write_function_info),
163 (write_callback_info), (write_constant_info), (write_signal_info),
164 (write_vfunc_info), (write_property_info), (write_object_info),
165 (write_interface_info):
166 Constants/Signals are handled now.
168 2008-08-14 Johan Dahlin <johan@gnome.org>
170 * girepository/girparser.c (start_type):
171 Don't require c:type.
175 Update, remove parts we don't support yet
176 * tests/roundtrips.sh:
178 * tools/generate.c (write_type_info), (write_field_info),
179 (write_callable_info), (write_struct_info):
180 Make it emit proper gir.
182 2008-08-14 Johan Dahlin <johan@gnome.org>
184 * giscanner/transformer.py:
185 New internal function for adding a new node.
187 2008-08-14 Johan Dahlin <johan@gnome.org>
190 Define an internal _H_ variable so we skip parsing both
191 i18n headers, only one is needed.
193 Add the glib-2.0.gir too.
194 * giscanner/glibast.py:
195 Add gconstpointer as an alias for ANY
196 * giscanner/transformer.py:
197 Do not lower case enumeration names per se.
198 Skip functions which has parameters called 'va_list'
200 2008-08-14 Colin Walters <walters@verbum.org>
202 * giscanner/transformer.py: Comment data structures.
203 Also squash pointers in resolve_type_name to correspond
204 with what we do for params.
205 * giscanner/glibtransformer.py: Print warnings in more
206 situations. Rework checks for method/constructor to
207 look up in our GType database instead of just checking
208 for *. Avoid generating <record> for GObject which
209 duplicate the <class>.
210 * gir/Makefile.am: Generate glib-2.0.gir and gobject-2.0.gir
213 2008-08-14 Johan Dahlin <johan@gnome.org>
215 * giscanner/girwriter.py:
216 * giscanner/glibast.py:
217 * giscanner/glibtransformer.py:
218 * giscanner/transformer.py:
221 Add pyflakes.py and run it in make check.
222 Update the source code to fix the errors reported by
225 2008-08-14 Johan Dahlin <johan@gnome.org>
228 * giscanner/girparser.py:
229 * giscanner/glibast.py:
230 * giscanner/glibtransformer.py:
231 Refactor the parser a bit.
232 Add parent type to interfaces and update callsites.
234 2008-08-14 Johan Dahlin <johan@gnome.org>
236 * giscanner/glibtransformer.py:
237 * giscanner/utils.py:
238 Refactor a bit, avoid isinstance and add a method
239 for each type we parse.
241 2008-08-14 Johan Dahlin <johan@gnome.org>
244 * giscanner/girparser.py:
245 * giscanner/glibtransformer.py:
247 Run pep8.py in make check, fix old errors.
249 2008-08-13 Colin Walters <walters@verbum.org>
251 * giscanner/girparser.py: Parse records.
253 2008-08-13 Colin Walters <walters@verbum.org>
255 * gir/Makefile.am: Install again.
256 * gir/gobject-2.0.gir: Add some more bits.
258 2008-08-13 Colin Walters <walters@verbum.org>
260 * gir/gobject-2.0.gir: Use correct namespace, add GType.
261 * giscanner/girparser.py: Handle aliases.
262 * giscanner/transformer.py: Record aliases. Make resolver
263 functions public; we now call into these explicitly from
264 glibtransformer. Handle resolving aliases.
265 * giscanner/glibtransformer.py: Separate our internal namespace
266 from included ones. Call up into transformer's resolver functions.
268 2008-08-13 Johan Dahlin <johan@gnome.org>
270 * girepository/girnode.c (g_ir_node_get_full_size_internal):
271 * girepository/girparser.c (start_class):
272 * giscanner/glibtransformer.py:
273 Allow get_type to be None, set a get_type for GInitiallyUnowned too.
275 2008-08-13 Johan Dahlin <johan@gnome.org>
277 * giscanner/cgobject.py:
278 Register GInitiallyUnowned
279 * giscanner/girwriter.py:
280 * giscanner/glibtransformer.py:
281 Special case GObject/GInitially owned as they are a bit special to use.
283 2008-08-13 Colin Walters <walters@verbum.org>
285 * tests/scanner/Foo-expected.gir, tests/scanner/utility-expected.gir:
286 Object is in GObject namespace.
288 2008-08-13 Colin Walters <walters@verbum.org>
290 * giscanner/girparser.py: Fix processing of functions
293 2008-08-13 Colin Walters <walters@verbum.org>
295 * giscanner/girparser.py: Parse more than just <class.
296 * giscanner/glibtransformer.py: Put aliases in a separate
297 data structure since their name is not canonicall.
298 * giscanner/transformer.py: Handle resolving type names
301 2008-08-13 Johan Dahlin <johan@gnome.org>
303 * tools/g-ir-scanner:
304 Allow multiple libraries
305 * giscanner/glibtransformer.py:
306 Rename load_library to add_library, traverse over all libraries
307 when trying to resolve a function
309 2008-08-12 Colin Walters <walters@verbum.org>
311 * giscanner/transformer.py: Record typedefs as <alias> elements.
312 Also attempt to look up types in external namespaces.
313 * giscanner/girwriter.py: Write them.
314 * giscanner/glibtransformer.py: Rework resolver using real instanceof
315 checks. Resolve interface methods and properties.
316 * tests/scanner/foo-object.h: Add a method with typedef.
317 * tests/scanner/Foo-expected.gir: Update.
318 * girepository/girnode.c: Debug tweaks.
319 * girepository/girparser.c: Make a first pass through the XML where we
320 record all the aliases. This lets us resolve them as we go through the
322 * gir/Makefile.am: Don't install gobject-2.0.gir; we want that to come
325 2008-08-12 Colin Walters <walters@verbum.org>
327 * giscanner/glibtransformer.py: Resolve typedefs (e.g. AtkAttributeSet -> GSList).
328 Correctly do subclasseing in 2nd pass resolution. Handle callbacks in structure
330 * giscanner/transformer.py: Record typedefs and expose public API for resolving
332 * tests/scanner/Foo-expected.gir: Fix expected callback types.
334 2008-08-12 Colin Walters <walters@verbum.org>
336 * giscanner/glibtransformer.py: Also transform object properties.
338 2008-08-12 Colin Walters <walters@verbum.org>
340 * giscanner/glibtransformer.py: Also transform callbacks
341 and structure field types.
342 * tests/scanner/Fooe-expected.gir: Update to expect correct
343 names for callbacks and structs.
345 2008-08-12 Colin Walters <walters@verbum.org>
347 * girepository/girparser.c: Handle 'any'.
348 * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
351 2008-08-12 Colin Walters <walters@verbum.org>
353 * giscanner/glibtransformer.py: We need to do type
354 resolution in a second pass after we've seen all the
357 2008-08-12 Colin Walters <walters@verbum.org>
359 * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
360 Add enum return value.
361 * giscanner/glibtransformer.py: Transform function return types
364 2008-08-12 Colin Walters <walters@verbum.org>
366 * tests/scanner/Makefile.am: Dep .gir files on scanner
367 sources too. Also remove @ so we see scanner invocations.
369 2008-08-12 Colin Walters <walters@verbum.org>
371 * girepository/girparser.c, girepository/gtypelib.c,
372 girepository/gtypelib.h, girepository/girnode.c:
373 Remove usage of (GAPI-oriented) TypeTag in favor of
374 GITypeTag from girepository.h.
376 2008-08-10 Colin Walters <walters@verbum.org>
378 * tests/roundtrips.sh: Use the correct tests.
380 2008-08-10 Colin Walters <walters@verbum.org>
382 * giscanner/cgobject.py: Declare/wrap a few more functions.
383 Fix parameter types for g_object_new and g_type_fundamental.
385 2008-08-10 Colin Walters <walters@verbum.org>
387 * giscanner/cgobject.py: Add new decorator @gwrap which forces
388 us to declare types for both return value and parameters. The
389 ctypes default of 'int' is bad because it hides 32/64 bit
390 problems. Convert all existing functions to use it.
392 2008-08-09 Johan Dahlin <johan@gnome.org>
394 * giscanner/__init__.py:
396 * giscanner/cgobject.py:
397 * giscanner/gidlparser.py:
398 * giscanner/gidlwriter.py:
399 * giscanner/girparser.py:
400 * giscanner/girwriter.py:
401 * giscanner/glibast.py:
402 * giscanner/glibtransformer.py:
403 * giscanner/odict.py:
404 * giscanner/sourcescanner.py:
405 * giscanner/transformer.py:
406 * giscanner/utils.py:
407 * giscanner/xmlwriter.py:
408 * tools/g-ir-scanner:
412 2008-08-09 Johan Dahlin <johan@gnome.org>
415 * relaxng/c-types.xml:
416 * relaxng/g-types.xml:
417 * relaxng/relaxng.rng:
419 Remove outdated relaxng schemas.
421 2008-08-09 Johan Dahlin <johan@gnome.org>
424 Rename metadata to typelib in variable names,
427 2008-08-09 Johan Dahlin <johan@gnome.org>
431 Remove old C scanner, which got rewritten in python.
433 2008-08-09 Johan Dahlin <johan@gnome.org>
435 * girepository/Makefile.am:
445 Move shared *.[ch] files to girepository from tools
447 2008-08-09 Johan Dahlin <johan@gnome.org>
452 * tests/constant.test:
455 * tests/function.test:
456 * tests/gobject.test:
457 * tests/interface.test:
464 Rename *.test to *.gir
466 2008-08-09 Johan Dahlin <johan@gnome.org>
470 * tests/parser/Foo-expected.gir:
471 * tests/parser/Makefile.am:
472 * tests/parser/foo-object.h:
473 * tests/parser/foo.c:
474 * tests/parser/utility-expected.gir:
475 * tests/parser/utility.c:
476 * tests/parser/utility.h:
477 * tests/scanner/Makefile.am:
478 Rename tests/parser to test/scanner
480 2008-08-08 Colin Walters <walters@verbum.org>
482 * tests/roundtrips.sh: Use local .gir files again.
484 2008-08-08 Colin Walters <walters@verbum.org>
486 * tests/invoke/Makefile.am: .gir file depends on libtool
489 2008-08-08 Colin Walters <walters@verbum.org>
491 * tools/girnode.c: Pass through parent node so we can
492 print the node whose child is NULL, if that occurs.
494 2008-08-08 Johan Dahlin <johan@gnome.org>
497 Disable roundtrip tests which are not yet working
498 * tests/invoke/testfns.gir:
501 2008-08-08 Johan Dahlin <johan@gnome.org>
503 * giscanner/girwriter.py:
505 * giscanner/glibast.py:
506 * giscanner/glibtransformer.py:
507 Swap order of members, to keep it consistent with
510 2008-08-08 Johan Dahlin <johan@gnome.org>
512 * girepository/gtypelib.c (validate_header):
513 * girepository/gtypelib.h:
515 * giscanner/girwriter.py:
516 * giscanner/sourcescanner.c (gi_source_symbol_ref),
517 (gi_source_symbol_unref):
520 * tests/constant.test:
523 * tests/function.test:
524 * tests/gobject.test:
525 * tests/interface.test:
526 * tests/invoke/Makefile.am:
527 * tests/invoke/testfns.xml:
529 * tests/parser/Makefile.am:
530 * tests/roundtrips.sh:
537 * tools/compiler.c (main):
538 * tools/generate.c (write_callable_info), (write_function_info),
540 * tools/gidlmodule.c:
541 * tools/gidlmodule.h:
544 * tools/gidlparser.c:
545 * tools/gidlparser.h:
546 * tools/gidlwriter.c:
547 * tools/gidlwriter.h:
548 * tools/scanner.c (create_node_from_gtype),
549 (create_node_from_ctype), (g_igenerator_process_properties),
550 (g_igenerator_process_signals), (g_igenerator_create_object),
551 (g_igenerator_create_interface), (g_igenerator_create_boxed),
552 (g_igenerator_create_enum), (g_igenerator_create_flags),
553 (g_igenerator_process_function_symbol),
554 (g_igenerator_process_unregistered_struct_typedef),
555 (g_igenerator_process_struct_typedef),
556 (g_igenerator_process_union_typedef),
557 (g_igenerator_process_enum_typedef),
558 (g_igenerator_process_function_typedef),
559 (g_igenerator_process_constant), (g_igenerator_process_symbols),
560 (g_igenerator_add_module), (g_igenerator_add_include_idl):
561 Merge in the gir-compiler branch.
562 Thanks to Philip and Colin for their help.
564 2008-07-26 Colin Walters <walters@verbum.org>
566 * tools/Makefile.am (bin_PROGRAMS): Install g-idl-compiler
567 and g-idl-generate to go along with how we're changing this
568 module to be installed.
569 * gobject-introspection-1.0.pc.in: Set up Cflags and Libs.
571 2008-07-24 Colin Walters <walters@verbum.org>
573 * girepository/girepository.c (g_irepository_register): Add
574 environment variable G_IREPOSITORY_VERBOSE so we can print
575 out what we're doing.
576 * girepository/girepository.c (g_irepository_register_file):
577 Add GError error message to g_debug call.
579 2008-07-08 Jürg Billeter <j@bitron.ch>
581 * giscanner/glibast.py:
585 2008-06-21 Johan Dahlin <jdahlin@async.com.br>
587 * giscanner/girparser.py (GIRParser._parse_api): Ignore a few
590 2008-06-20 Johan Dahlin <jdahlin@async.com.br>
593 * giscanner/girwriter.py:
594 * giscanner/transformer.py:
595 * tests/parser/Foo-expected.gir:
596 * tests/parser/foo-object.h:
597 * tests/parser/foo.c (foo_object_allow_none):
598 Add support for gtk-doc annotations for allow-none.
601 2008-06-19 Johan Dahlin <jdahlin@async.com.br>
604 * giscanner/girwriter.py:
605 * giscanner/glibast.py:
606 * giscanner/glibtransformer.py:
607 * giscanner/transformer.py:
608 * tests/parser/Foo-expected.gir:
609 Start using abstract type instead of the raw C types.
610 Register a bunch of glib types we care about.
612 2008-06-19 Rob Taylor <rob.taylor@codethink.co.uk>
617 2008-06-08 Philip Van Hoof <pvanhoof@gnome.org>
619 * girepository/girepository.c:
620 * girepository/gtypelib.c:
621 * girepository/ginfo.c:
622 * girepository/ginvoke.c:
623 * girepository/girepository.h:
624 * girepository/gtypelib.h:
625 * girepository/gmetadata.c:
626 * girepository/Makefile.am:
627 * girepository/gmetadata.h:
629 * tools/gidlmodule.c:
632 * tools/gidlmodule.h:
633 * tools/gidlparser.c:
635 Renamed GMetadata to GTypelib
637 2008-06-07 Johan Dahlin <jdahlin@async.com.br>
639 * giscanner/xmlwriter.py:
640 Improve line wrapping when > 79 charaters
642 2008-06-05 Jürg Billeter <j@bitron.ch>
645 * giscanner/girwriter.py:
646 * giscanner/transformer.py:
647 Use <type> element for field types
648 * tests/parser/Foo-expected.gir:
651 2008-06-04 Johan Dahlin <jdahlin@async.com.br>
653 * giscanner/glibtransformer.py:
654 Fix a bug which prevented GdkEvent from being generated
656 2008-06-03 Johan Dahlin <jdahlin@async.com.br>
658 * giscanner/Makefile.am:
660 * giscanner/girwriter.py:
661 * giscanner/glibast.py:
662 * giscanner/glibtransformer.py:
663 * giscanner/transformer.py:
664 * giscanner/utils.py:
665 * tests/parser/Foo-expected.gir:
666 Improve enum member parsing and introspection
668 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
670 * giscanner/scannerparser.y:
671 * giscanner/sourcescanner.h:
672 * giscanner/sourcescanner.py:
673 Add a new source type enum for member.
674 Use __repr__ for improved debugging
675 * giscanner/girparser.py:
677 * giscanner/transformer.py:
678 Improve parsing of struct members.
679 * tests/parser/foo-object.h:
682 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
684 * giscanner/xmlwriter.py:
685 Improve error reporting when trying to quote None.
686 * giscanner/girparser.py:
687 Do not print warnings when including more complete .gir files
688 * giscanner/girwriter.py:
689 Do not require a name for parameters, add a todo for singletons
690 * giscanner/glibtransformer.py:
691 Refactor the way structs are done, add a couple of hacks to allow
693 * giscanner/transformer.py:
694 Add enough hacks so cairo, atk and pango.gir can be parsed properly
695 * gobject-introspection-1.0.pc.in:
696 Export girdir, so we can access gobject-2.0.gir from outside
698 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
700 * tools/g-ir-scanner:
701 * tests/parser/Makefile.am:
702 Update sys.path before running the parser so we don't have
703 to setup PYTHONPATH ourselves.
707 * girepository/Makefile.am:
708 * giscanner/transformer.py:
709 * gobject-introspection-1.0.pc.in:
710 * gobject-introspection.pc.in:
713 Rename pkg-config name to gobject-introspection-1.0,
714 Do not installed anything which is not using the gir format.
715 Disable compililation the old C scanner, but still keep the source
716 until all the remaning functionallity has been ported.
718 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
720 * giscanner/giscannermodule.c (symbol_get_ident): Prevent
721 a crash when symbol->indent is NULL.
723 * giscanner/sourcescanner.py (ctype_name): Add ctype_name,
724 a function to convert a CTYPE symbol to a string
726 2008-05-24 Johan Dahlin <jdahlin@async.com.br>
729 * giscanner/girwriter.py:
730 * giscanner/giscannermodule.c
731 (pygi_source_scanner_append_filename),
732 (pygi_source_scanner_parse_file):
733 * giscanner/glibtransformer.py:
734 * giscanner/sourcescanner.py:
735 Revert back to using temporary files to send in headers.
736 Allow Functions to be passed in as callbacks, add a couple
737 of try/excepts missing features.
738 We can now scan pango
740 2008-05-08 Johan Dahlin <johan@gnome.org>
742 * giscanner/glibtransformer.py:
743 * giscanner/transformer.py:
744 Move namespace stripping glibtransformer->transformer
746 2008-05-08 Johan Dahlin <johan@gnome.org>
749 * giscanner/girwriter.py:
750 * giscanner/glibtransformer.py:
751 * giscanner/transformer.py:
752 * tools/g-ir-scanner:
753 Introduce a namespace ast node
755 2008-05-05 Johan Dahlin <johan@gnome.org>
757 * giscanner/__init__.py:
758 * giscanner/sourcescanner.py:
759 * giscanner/transformer.py:
760 Move sourcescanner symbols to the sourcescanner module, instead
761 of in the global __init__ namespace.
763 2008-05-03 Johan Dahlin <johan@gnome.org>
765 * giscanner/glibtransformer.py:
766 * tools/g-ir-scanner:
767 Handle missing parameters better, allow - and + in .la dlname
770 2008-05-03 Johan Dahlin <johan@gnome.org>
772 * giscanner/__init__.py:
774 * giscanner/girwriter.py:
775 * giscanner/glibtransformer.py:
776 * giscanner/transformer.py:
777 Parse struct fields properly, improve debugging.
779 2008-04-29 Johan Dahlin <johan@gnome.org>
782 * giscanner/girwriter.py:
783 * giscanner/transformer.py:
784 * tests/parser/Foo-expected.gir:
786 Use transfer-ownership everywhere, to mark ownership/calle/caller etc.
788 2008-04-29 Johan Dahlin <jdahlin@async.com.br>
791 * docs/g-ir-scanner.1:
792 * metadata-annotations-proposal.txt:
793 * metadata-format.txt:
794 Add a basic, unfinshed man page for g-ir-scanner, move documents into .txt
796 2008-04-29 Johan Dahlin <jdahlin@async.com.br>
798 * giscanner/girwriter.py:
799 * giscanner/glibtransformer.py:
800 * giscanner/transformer.py:
801 * giscanner/xmlwriter.py:
802 * tests/parser/Foo-expected.gir:
803 * tests/parser/foo-object.h:
804 Write record/structs to gir file too. Add a couple of tests,
805 fix an off by one error in xmlwriter.py.
807 2008-04-28 Johan Dahlin <johan@gnome.org>
809 * giscanner/xmlwriter.py: Calculate the line length properly,
810 include the provided extra indentation in the calculation, really.
812 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
815 * giscanner/glibast.py:
816 * giscanner/glibtransformer.py:
817 * giscanner/transformer.py:
818 * tools/g-ir-scanner:
819 Add a --strip-prefix and sort out confusion between names and symbols
820 for functions and struct + derivaties.
821 Refactor bootstrap of g-ir-scanner, so we can set options on
822 Transformer() before parsing everything.
824 2008-04-28 Johan Dahlin <johan@gnome.org>
826 * giscanner/transformer.py (Transformer._traverse_one): Avoid recursion
827 when scanning girepository.h
829 * giscanner/sourcescanner.py (SourceScanner._preprocess): Define
830 a __GI_SCANNER__ when we run.
832 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
835 * giscanner/girwriter.py:
836 * giscanner/glibast.py:
837 * giscanner/glibtransformer.py:
838 * tests/parser/Foo-expected.gir:
839 * tests/parser/utility-expected.gir:
840 Rename most c:identifier to c:type. Add new ones to
841 class/interface/enum/boxed.
843 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
846 * giscanner/girwriter.py:
847 * giscanner/glibtransformer.py:
848 * tests/parser/Foo-expected.gidl:
849 * tests/parser/Makefile.am:
850 Move c:identifier from return-value to subchild type,
851 as per Jürgs suggestion
853 2008-04-28 Johan Dahlin <johan@gnome.org>
855 * giscanner/girwriter.py:
856 * tests/parser/Foo-expected.gir:
857 Write property.type as a child node.
859 2008-04-27 Johan Dahlin <johan@gnome.org>
864 * gidl/gobject-2.0.gidl:
866 * gir/gobject-2.0.gir:
867 * tests/parser/Makefile.am:
868 Replace the GObject gidl with a GObject gir.
870 2008-04-27 Johan Dahlin <johan@gnome.org>
872 * tools/Makefile.am (bin_SCRIPTS): g-ir-scanner is a script,
875 * giscanner/xmlwriter.py:
876 * tests/parser/Foo-expected.gir:
877 Include indentation in line length calculation
879 2008-04-27 Johan Dahlin <johan@gnome.org>
881 * giscanner/girparser.py:
882 Prettify NS parsing using elementtree.
884 2008-04-27 Johan Dahlin <johan@gnome.org>
887 * giscanner/Makefile.am:
888 * giscanner/girparser.py:
889 * giscanner/glibtransformer.py:
890 * tests/parser/Foo-expected.gidl:
891 * tests/parser/Foo-expected.gir:
892 * tests/parser/Makefile.am:
893 * tests/parser/utility-expected.gidl:
894 * tests/parser/utility-expected.gir:
895 * tools/g-ir-scanner:
896 Switch over to GIR as the default format. Add a simple GIDL
898 Update tests and fix simplify makefiles by depending
899 on GNU make extensions.
901 2008-04-27 Johan Dahlin <johan@gnome.org>
903 * giscanner/xmlwriter.py:
904 Wrap attributes for lines which are wider than 79 characters
906 * giscanner/scannerlexer.l:
907 Allow parenthesis in annotations
910 * giscanner/gidlwriter.py:
911 * giscanner/girwriter.py:
912 * giscanner/glibtransformer.py:
913 * giscanner/transformer.py:
914 Add initial sequence support, including annotation.
915 Refactor type handling a bit.
917 2008-04-27 Johan Dahlin <johan@gnome.org>
919 * tests/parser/Foo-expected.gidl:
920 * tests/parser/foo-object.h:
921 * tests/parser/foo.c (foo_object_class_init),
922 (foo_object_get_strings), (foo_object_get_objects):
923 Add two new functions to check sequence return values.
924 Also fixes a compilation warning.
926 2008-04-27 Johan Dahlin <johan@gnome.org>
928 * giscanner/giscannermodule.c (]): Cast the getter, avoids
929 a compilation warning.
931 * tools/Makefile.am (g_ir_scanner_SOURCES):
932 g-ir-scanner has no sources.
934 2008-04-25 Johan Dahlin <johan@gnome.org>
936 * giscanner/Makefile.am:
938 * giscanner/gidlparser.py:
939 * giscanner/gidlwriter.py:
940 * giscanner/girwriter.py:
941 * giscanner/glibast.py:
942 * giscanner/glibtransformer.py:
943 * giscanner/transformer.py:
944 Split out nodes to ast.py and glibast.py
946 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
948 * giscanner/Makefile.am:
949 * giscanner/gidlparser.py:
950 * giscanner/gidlwriter.py:
951 * giscanner/girwriter.py:
952 * giscanner/glibtransformer.py:
953 * giscanner/gobjecttreebuilder.py:
954 * giscanner/transformer.py:
955 * giscanner/treebuilder.py:
956 * tools/g-ir-scanner:
957 Rename treebuilder to transformer and
958 gobjectreebuilder to glibtransformer.
960 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
962 * giscanner/Makefile.am:
963 * giscanner/__init__.py:
964 * giscanner/cgobject.py:
965 * giscanner/gidlparser.py:
966 * giscanner/gidlwriter.py:
967 * giscanner/girwriter.py:
968 * giscanner/gobjecttreebuilder.py:
969 * giscanner/odict.py:
970 * giscanner/sourcescanner.py:
971 * giscanner/treebuilder.py:
972 * giscanner/xmlwriter.py:
974 * tools/g-ir-scanner:
975 Add LGPLv2 license header and install all python files
977 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
980 * giscanner/gidlwriter.py:
981 * giscanner/giscannermodule.c (pygi_source_directive_new),
982 (directive_get_options), (pygi_source_symbol_new),
983 (symbol_get_base_type), (pygi_source_type_new),
984 (type_get_base_type), (type_get_child_list),
985 (pygi_source_scanner_get_symbols),
986 (pygi_source_scanner_get_directives):
987 * giscanner/gobjecttreebuilder.py:
988 * giscanner/sourcescanner.py:
989 * giscanner/treebuilder.py:
990 * tests/parser/foo-object.h:
991 Add support for virtual methods.
992 Pair struct FooClass with struct Foo.
993 Clean up the SourceScanner bindings a bit.
994 Add a testcase for virtual methods.
996 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
998 * giscanner/cgobject.py:
999 * giscanner/gidlwriter.py:
1000 * giscanner/gobjecttreebuilder.py:
1001 Add support for signals
1003 * tests/parser/foo.c (foo_object_class_init):
1004 * Foo-expected.gidl:
1005 Add a signal and update the expected output.
1007 2008-04-24 Johan Dahlin <jdahlin@async.com.br>
1009 * giscanner/gidlwriter.py:
1010 * giscanner/girwriter.py:
1011 * giscanner/giscannermodule.c (directive_get_name),
1012 (directive_get_value), (directive_get_options),
1013 (symbol_get_directives), (symbol_set_directives),
1014 (pygi_source_scanner_parse_file),
1015 (pygi_source_scanner_lex_filename),
1016 (pygi_source_scanner_get_directives), (init_giscanner):
1017 * giscanner/sourcescanner.c (gi_source_scanner_get_directives):
1018 * giscanner/sourcescanner.h:
1019 * giscanner/sourcescanner.py:
1020 * giscanner/treebuilder.py:
1021 * tools/g-ir-scanner:
1022 Add support for source/header annotations.
1024 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
1026 * giscanner/gidlwriter.py:
1027 * giscanner/girwriter.py:
1028 * giscanner/gobjecttreebuilder.py:
1029 * giscanner/treebuilder.py:
1030 Add support for Callbacks
1032 2008-04-22 Havoc Pennington <hp@pobox.com>
1034 * girepository/ginvoke.c (g_function_info_invoke): If a symbol is
1035 not in metadata->module, look for it in the global module, in case
1036 some other object or the app itself provides the symbol.
1038 2008-04-22 Havoc Pennington <hp@pobox.com>
1040 * girepository/gmetadata.c (_g_metadata_init): hack to avoid
1041 dlopening a library that is already in the main app, by checking
1042 whether one of the lib's symbols is already loaded.
1044 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
1046 * tests/parser/Foo-expected.gidl:
1047 * tests/parser/foo-object.h:
1050 2008-04-22 Havoc Pennington <hp@pobox.com>
1052 * girepository/ginfo.c (g_interface_info_find_method):
1053 Use interface_blob_size not object_blob_size to compute offset.
1055 2008-04-22 Havoc Pennington <hp@pobox.com>
1057 * girepository/gmetadata.c (_g_metadata_init): remove
1058 G_MODULE_BIND_LOCAL flag when loading libraries, since some libs
1059 (Glade and Clutter for example) rely on being loaded globally.
1061 2008-04-22 Havoc Pennington <hp@pobox.com>
1063 * girepository/ginfo.c (g_registered_type_info_get_g_type): new
1064 function to get the GType given a RegisteredTypeInfo
1066 2008-04-22 Johan Dahlin <johan@gnome.org>
1068 * COPYING: Add a LGPL license, to prevent automake to
1069 put in a copy of GPL here. Pointed out by Havoc.
1071 * girepository/ginfo.c (g_info_from_entry), (g_type_info_new),
1072 (g_type_info_is_pointer), (g_type_info_get_tag),
1073 (g_type_info_get_param_type), (g_type_info_get_interface),
1074 (g_type_info_get_array_length), (g_type_info_is_zero_terminated),
1075 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
1076 (g_error_domain_info_get_codes), (g_enum_info_get_value),
1077 (g_object_info_get_interface), (g_object_info_get_field),
1078 (g_interface_info_get_prerequisite),
1079 (g_signal_info_get_class_closure), (g_constant_info_get_value):
1080 * girepository/ginvoke.c (get_ffi_type):
1081 * girepository/girepository.h:
1082 * girepository/gmetadata.c (g_metadata_get_dir_entry),
1083 (g_metadata_check_sanity), (validate_header),
1084 (validate_array_type_blob), (validate_iface_type_blob),
1085 (validate_param_type_blob), (validate_error_type_blob),
1086 (validate_type_blob), (validate_constant_blob),
1087 (validate_struct_blob), (validate_enum_blob):
1088 * girepository/gmetadata.h:
1089 * tests/Makefile.am:
1090 * tests/invoke/Makefile.am:
1091 * tests/invoke/invoke.c (main):
1092 * tests/roundtrips.sh:
1093 * tools/Makefile.am:
1094 * tools/compiler.c (format_output), (write_out_metadata), (main):
1095 * tools/generate.c (write_type_name), (write_type_info),
1096 (write_constant_value), (write_enum_info), (load_metadata), (main):
1097 * tools/gidlcompilercontext.c:
1098 * tools/gidlcompilercontext.h:
1099 * tools/gidlcompilerentrynode.c:
1100 * tools/gidlcompilerentrynode.h:
1101 * tools/gidlcompilertypenode.c:
1102 * tools/gidlcompilertypenode.h:
1103 * tools/gidlmodule.c (g_idl_module_build_metadata):
1104 * tools/gidlmodule.h:
1105 * tools/gidlnode.c (init_stats), (dump_stats),
1106 (g_idl_node_get_size), (g_idl_node_get_full_size),
1107 (g_idl_node_cmp), (g_idl_node_can_have_member),
1108 (g_idl_node_add_member), (g_idl_node_param_direction_string),
1109 (parse_int_value), (parse_uint_value), (parse_float_value),
1110 (parse_boolean_value), (find_entry_node), (find_entry),
1111 (serialize_type), (g_idl_node_build_metadata), (write_string):
1113 * tools/gidlparser.c (parse_type_internal):
1114 * tools/quote-file.sh:
1115 Revert revisions 157,149-148,136-129 and 120.
1116 Move back to using g-idl-generate to generate the metadata and
1117 avoids dependency on a c compiler.
1119 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
1121 * giscanner/girwriter.py:
1122 * tools/g-ir-scanner:
1123 Add an initial GIR writer and a --format option to g-ir-scanner
1125 2008-04-21 Johan Dahlin <johan@gnome.org>
1127 * giscanner/cgobject.py: Use ctypes.util.find_library to locate
1128 gobject-2.0 and raise ImportError if not found.
1130 * giscanner/gidlparser.py:
1131 * giscanner/gidlwriter.py:
1132 * giscanner/gobjecttreebuilder.py:
1133 * tools/g-ir-scanner:
1134 Add a --include argument to include types from other idls.
1135 Add a minimalistic GIDL parser (just objects for now)
1136 Implement resolving of external type references and use it to
1137 resolve parent types, argument types and return types.
1139 2008-04-21 Johan Dahlin <johan@gnome.org>
1141 * giscanner/gidlwriter.py:
1142 * giscanner/gobjecttreebuilder.py:
1143 * giscanner/treebuilder.py:
1144 Add support for properties.
1145 Refactor Class/Interface support a bit, to share more code and
1146 always initialize their method attribute to an empty list.
1148 2008-04-21 Johan Dahlin <johan@gnome.org>
1150 * giscanner/cgobject.py:
1151 Add a workaround for a glib bug interface introspection bug
1152 (object_interface_list_properties, object_class_list_properties):
1153 Cast the return value to GParamSpec.
1155 * tests/parser/Foo-expected.gidl: Update
1156 * tests/parser/foo.c: Add a string property
1158 * giscanner/gobjecttreebuilder.py:
1159 After stripping namespaces, remove the original
1160 item to avoid duplication (GtkButton struct and Button object)
1162 2008-04-21 Johan Dahlin <johan@gnome.org>
1164 * giscanner/gobjecttreebuilder.py:
1165 * giscanner/treebuilder.py:
1166 Strip namespaces before objects, so we'll export
1167 GtkButton as Button in the gtk namespace
1169 2008-04-21 Johan Dahlin <johan@gnome.org>
1171 * giscanner/gidlwriter.py:
1172 * giscanner/gobjecttreebuilder.py:
1173 * giscanner/treebuilder.py:
1174 Add constructors for object/boxed types.
1176 2008-04-21 Johan Dahlin <johan@gnome.org>
1178 * giscanner/gidlwriter.py:
1179 * giscanner/gobjecttreebuilder.py:
1180 Add support for boxed types
1182 2008-04-21 Johan Dahlin <johan@gnome.org>
1184 * giscanner/giscannermodule.c: Mark structures as const,
1185 wrap SourceType.const_string.
1187 * tests/parser/foo-object.h: Add a couple of constants.
1189 * giscanner/gidlwriter.py:
1190 * giscanner/gobjecttreebuilder.py:
1191 * giscanner/treebuilder.py:
1192 Add basic support for interfaces
1194 * tools/g-ir-scanner:
1195 Add -o/--output for writing to a file
1197 2008-04-21 Havoc Pennington <hp@redhat.com>
1199 * TODO: add some C API wishlist items I could think of quickly
1201 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
1203 * giscanner/gidlwriter.py:
1204 * giscanner/xmlwriter.py:
1205 Add a simple api for writing tags which can be used
1206 with the new 'with statement' in python 2.5
1208 2008-04-21 Johan Dahlin <johan@gnome.org>
1210 * giscanner/gobjecttreebuilder.py:
1211 Strip namespace and object prefix from method names.
1213 2008-04-21 Johan Dahlin <johan@gnome.org>
1215 * tools/g-ir-scanner (main): Add --pkg option to pass in
1216 pkg-config modules to get cflags from.
1218 * giscanner/gidlwriter.py (GIDLWriter._write_method):
1219 Avoid duplication, reuse function writer for methods.
1221 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
1223 * giscanner/gidlwriter.py:
1224 * giscanner/gobjecttreebuilder.py:
1225 * giscanner/treebuilder.py:
1226 * tools/g-ir-scanner:
1227 Resolve libtool .la files.
1228 Strip name spaces for methods.
1229 Add function symbols
1231 2008-04-20 Johan Dahlin <jdahlin@async.com.br>
1233 * giscanner/cgobject.py:
1234 * giscanner/gidlwriter.py:
1235 * giscanner/gobjecttreebuilder.py:
1236 * giscanner/treebuilder.py:
1237 Add support for classes and methods
1239 2008-04-20 Johan Dahlin <johan@gnome.org>
1241 * giscanner/gidlwriter.py:
1242 * giscanner/gobjecttreebuilder.py:
1243 * giscanner/odict.py:
1244 Avoid conflicts, keep the output ordered similar to
1245 the order of the input.
1246 Add a simple ordered dictionary implemenation
1248 2008-04-19 Johan Dahlin <johan@gnome.org>
1250 * giscanner/cgobject.py:
1251 * giscanner/gidlwriter.py:
1252 * giscanner/gobjecttreebuilder.py:
1253 * tools/g-ir-scanner:
1254 Start introspecting get-type functions.
1255 Implement support for GLib/GFlags GTypes.
1256 Add a ctype based GObject binding.
1258 2008-04-18 Johan Dahlin <jdahlin@async.com.br>
1260 * giscanner/gidlwriter.py:
1261 * giscanner/xmlwriter.py:
1262 * tools/g-ir-scanner:
1263 Add a simplistic gidl writer, which can't do too much.
1265 2008-04-18 Johan Dahlin <johan@gnome.org>
1267 * giscanner/sourcescanner.py:
1268 * giscanner/treebuilder.py:
1269 * tools/g-ir-scanner:
1270 split tree building and source scanning interface to separate files.
1272 2008-04-18 Johan Dahlin <johan@gnome.org>
1274 * tools/g-ir-scanner (Parameter.__init__): Start constructing
1276 - Add support for struct/parameter/return, start parsing of ctypes
1278 * giscanner/giscannermodule.c: wrap GISourceType.child_list and
1281 2008-03-31 Johan Dahlin <johan@gnome.org>
1283 * tools/g-ir-scanner:
1284 Start to build abstract syntax node of scanned sources.
1285 Add support for cpp options.
1287 2008-03-27 Johan Dahlin <johan@gnome.org>
1289 * giscanner/giscannermodule.c:
1290 * giscanner/scannerlexer.l:
1291 * giscanner/sourcescanner.c:
1292 * tools/g-ir-scanner:
1294 Add simple pre-processor using subprocess and a PIPE.
1295 Change the parse_file apis to accept a file descriptor.
1297 2008-03-25 Johan Dahlin <johan@gnome.org>
1299 * giscanner/__init__.py:
1300 * tools/g-ir-scanner:
1301 Fix a typo and add an example python test program.
1303 2008-03-25 Johan Dahlin <johan@gnome.org>
1305 * giscanner/__init__.py:
1306 * giscanner/giscannermodule.c:
1307 * giscanner/sourcescanner.c:
1308 * giscanner/sourcescanner.h:
1309 Add constants and wrap a few more SymbolType fields
1311 2008-03-25 Johan Dahlin <johan@gnome.org>
1315 * giscanner/__init__.py:
1316 * giscanner/giscannermodule.c:
1317 * giscanner/Makefile.am:
1319 Add initial python bindings for the scanner and
1320 depend on python 2.5.
1322 2008-03-25 Johan Dahlin <johan@gnome.org>
1326 * giscanner/Makefile.am:
1327 * giscanner/sourcescanner.c:
1328 * giscanner/sourcescanner.h:
1329 * tools/Makefile.am:
1330 * tools/grealpath.h:
1331 * tools/sourcescanner.c:
1332 * tools/sourcescanner.h:
1334 Move the scanner to a separate library.
1336 2008-03-23 Johan Dahlin <johan@gnome.org>
1338 * tools/Makefile.am:
1341 * tools/scannerlexer.l:
1342 * tools/scannerparser.y:
1343 * tools/sourcescanner.c:
1344 * tools/sourcescanner.h:
1345 Split out the source scanner from the generator.
1346 Rename the symbols used in the scanner to use the gi_ prefix.
1347 This should make it possible to use the raw C parser from
1350 2008-03-23 Johan Dahlin <johan@gnome.org>
1352 * tests/parser/Makefile.am (utility.gidl):
1353 * tests/parser/utility-expected.gidl:
1354 Pass in the gobject.gidl since we're defining a GObject.
1356 2008-03-12 Johan Dahlin <johan@gnome.org>
1358 * relaxng/relaxng.rng:
1359 Add a releaxng in relaxng we can use to validate the relaxngs
1362 2008-03-12 Jürg Billeter <j@bitron.ch>
1364 * tools/scanner.c: (g_igenerator_new):
1365 * tools/scannerparser.y:
1366 Fix compiler warnings.
1368 2008-03-12 Jürg Billeter <j@bitron.ch>
1372 * tools/scannerparser.y:
1373 Start fixing memory management in g-idl-scanner.
1375 2008-03-12 Rob Taylor <rob.taylor@codethink.co.uk>
1377 * tools/gidlcompilercontext.c: (write_compiled):
1378 Fix critical warning when no shlib passed to g-idl-compiler.
1380 2008-03-12 Johan Dahlin <johan@gnome.org>
1382 * tests/parser/utility-expected.gidl:
1383 * tests/parser/utility.h:
1384 Add a get_type-function, so the scanner actually
1385 parses it as an object.
1387 2008-03-12 Johan Dahlin <johan@gnome.org>
1389 * tools/gidlwriter.c (function_generate): Add missing trailing quote.
1392 * tests/parser/Foo-expected.gidl:
1393 * tests/parser/Makefile.am:
1394 * tests/parser/foo-object.h:
1395 * tests/parser/foo.c:
1396 * tests/parser/utility-expected.gidl:
1397 * tests/parser/utility.c:
1398 * tests/parser/utility.h:
1400 Add a new gidl test. 'utility.gidl', which is used to be able
1401 to test external type references. Add a reference to UtilityObject*
1404 2008-03-11 Johan Dahlin <johan@gnome.org>
1408 Remove most global variables
1410 2008-03-11 Philip Van Hoof <me@pvanhoof.be>
1412 * tools/scannerlexer.l:
1414 * tests/parser/Foo-expected.gidl:
1415 * tests/parser/foo.c:
1416 * tests/parser/Makefile.am:
1417 * tests/parser/foo-object.h:
1419 Added a few extra tests. Which resulted in finding a few
1420 bugs. Which resulted in me fixing those bugs
1422 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
1424 * tools/gidlcompilercontext.c: (g_idl_compiler_write_dir_entry),
1425 (g_idl_compiler_write_xref_entry), (g_idl_compiler_add_xref):
1426 Add some comments for strings into generated output for
1429 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
1431 * tools/gidlcompilercontext.c: (write_compiled):
1432 Write out the shlibs variable before writing out the strings
1433 length. Fixes compiler warning when using '-l' flag with
1436 2008-03-11 Johan Dahlin <johan@gnome.org>
1438 * tests/parser/Foo-expected.gidl:
1439 * tests/parser/foo-object.h:
1442 * tools/scannerlexer.l:
1443 Add support for parsing return arguments. Add support for
1444 caller-owns return types.
1445 Patch by Philip Van Hoof.
1447 * tools/scannerparser.y:
1448 Remove parsing of the @deprecated syntax used in headers.
1449 We will support gtk-doc deprecation in the future instead.
1451 2008-03-11 Johan Dahlin <johan@gnome.org>
1453 * tools/compiler.c (main): Coding style fixes
1455 2008-03-10 Johan Dahlin <johan@gnome.org>
1458 Add GCOV_LIBS to GILIBS
1460 2008-03-10 Johan Dahlin <johan@gnome.org>
1462 * tests/parser/Foo-expected.gidl:
1463 * tests/parser/foo.c:
1464 Rename null-ok to direction=out
1466 2008-03-10 Philip Van Hoof <me@pvanhoof.be>
1468 reviewed and extensively tested by Johan
1470 * tests/parser/Foo-expected.gidl:
1471 * tests/parser/foo-object.h:
1472 * tests/parser/foo.c:
1475 * tools/gidlwriter.c:
1478 * tools/scannerlexer.l:
1479 * tools/scannerparser.y:
1481 Add support for scanning for gtk-doc comments inside
1482 C source files. Add tests
1484 2008-03-10 Johan Dahlin <johan@gnome.org>
1486 * tests/parser/Makefile.am:
1487 * tests/parser/foo.c:
1490 * tools/scannerparser.y:
1491 Add an api to lex filenames.
1492 Lex all source .c files passed in on the command line.
1493 Scan sources in a test and a couple of private structures
1494 which should not be included in the generated gidl
1496 2008-03-10 Johan Dahlin <johan@gnome.org>
1498 * tests/invoke/Makefile.am: Make the generated metadata
1499 depend on the g-idl-compiler
1501 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1503 * tools/gidlmodule.c
1504 * tools/gidlmodule.h
1507 Remove the old g-idl-compiler code.
1510 2008-02-22 Mark Doffman <mark.doffman@codethink.co.uk>
1512 * tools/quote-file.sh
1515 Move to using the 'C' struct compiler code.
1517 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1519 * girepository/ginfo.c
1521 Change the way that external references with no namespace
1522 are dealt with. External references with no namespace
1523 are placed into the XML as-if they are a local reference.
1524 This is temporary, but helps with roundtrip tests.
1526 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1528 * girepository/ginfo.c
1529 Add the ability to get the value of a constant of
1530 type TYPE_TAG_SYMBOL. In the case of a symbol the value
1531 is provided as a string.
1533 This would deal properly with:
1534 typedef char* random;
1535 const random = "A string";
1537 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1539 * girepository/ginfo.c
1540 * girepository/girepository.h
1542 Add a function to check if an enum is registered or not.
1543 Previously anything testing this relied on the g-type
1544 string offset having a value of 0.
1546 * girepository/gmetadata.c
1547 * girepository/gmetadata.h
1549 Remove unneccesary or erroneous checks. There were two
1550 metadata validation checks which made sure that the blob
1551 sizes were the same as some magic numbers compiled into the code.
1552 This is wrong as it breaks any forwards compatibility that may
1555 Checks were also present that made sure that unregistered type
1556 blobs had a value of 0 in the g-type offset field. This is
1557 unneccessary. If a type blob is unregistered then any value
1558 in its g-type field is simply invalid.
1560 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1562 * girepository/ginfo.c
1563 * girepository/gmetadata.c
1564 * girepository/gmetadata.h
1566 Change the metadata format to have a standard header
1567 for all the type blobs. Merge the SimpleTypeBlob
1568 and InterfaceTypeBlob into a union. A union of these
1569 two blobs existed previously but was not explicit
1570 in the metadata format.
1572 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1574 * tools/gidlcompilercontext.c
1575 * tools/gidlcompilercontext.h
1576 * tools/gidlcompilerentrynode.c
1577 * tools/gidlcompilerentrynode.h
1578 * tools/gidlcompilertypenode.c
1579 * tools/gidlcompilertypenode.h
1581 Add code to compile a tree of GIdlNodes to
1582 a 'C' struct representing the metadata.
1583 This is to aid cross-compiling. Previously
1584 the g-idl-compiler created a binary blob with
1585 data written in the byte order and alignment
1586 of the tool rather than the intended target.
1588 Cleaned up and improved by Johan and Robert :-)
1590 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1592 * girepository/ginvoke.c
1593 * girepository/girepository.h
1594 * girepository/gmetadata.c
1595 * girepository/gmetadata.h
1597 * tools/gidlparser.c
1598 Modify TYPE_TAG_INTERFACE to TYPE_TAG_SYMBOL
1599 to avoid confusion with the interface blob.
1602 * tools/gidlparser.c
1603 Remove magic numbers and replace with type-tag
1604 enumeration symbols.
1606 * girepository/gmetadata.c
1607 Add validate declaration.
1609 2008-03-10 Jürg Billeter <j@bitron.ch>
1611 * tools/gidlparser.c: (parse_type_internal):
1612 * tools/scannerlexer.l:
1613 * tools/scannerparser.y:
1614 Support C99 _Bool type in scanner.
1616 2008-03-10 Jürg Billeter <j@bitron.ch>
1618 * tests/parser/Foo-expected.gidl:
1619 * tests/parser/foo-object.h:
1620 * tests/parser/foo.c: (foo_enum_method):
1621 * tools/scanner.c: (g_igenerator_process_function_symbol):
1622 Don't skip functions that are defined in the namespace of a type
1623 that doesn't support methods, as for example enums.
1625 2008-03-10 Johan Dahlin <johan@gnome.org>
1627 * gidl.dtd: Remove, we're using relaxng for now
1629 * tests/parser/Foo-expected.gidl:
1630 * tests/parser/foo-object.h:
1631 * tests/parser/foo.c:
1632 Rename the enum/flags get_type functions to include the whole type.
1634 2008-03-08 Marc-Andre Lureau <marcandre.lureau@gmail.com>
1636 * tools/gidlwriter.c (enum_generate): added "type-name",
1637 "get-type" and "deprecated" missing arguments.
1638 * tests/parser/Foo-expected.gidl:
1639 * tests/parser/foo-object.h: test enum type, and no type.
1641 2008-03-06 Johan Dahlin <jdahlin@async.com.br>
1644 Consistent checks, add missing 'test'
1646 2008-03-05 Havoc Pennington <hp@redhat.com>
1648 * configure.ac: Take advantage of a libffi.pc if one exists, as it
1649 does on Fedora 8. Make libffi a hard requirement, since it was in
1650 practice anyway (was not really conditional in the code or
1651 makefile, only in configure).
1653 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1655 reviewed by: Rob Taylor <rob.taylor@codethink.co.uk>
1656 reviewed by: Johan Dahlin <johan@gnome.org>
1658 * tests/Makefile.am:
1659 * tests/roundtrips.sh:
1660 Modify the roundtrips test so that they do not use the
1661 --raw option of the gidl compiler but instead compile a
1662 shared library to use with g_module.
1664 * tests/invoke/Makefile.am:
1665 * tests/invoke/invoke.c:
1666 Modify the invoke tests to build a shared library rather
1667 than use the --raw option.
1669 * tests/invoke/invoke-namespace-find.sh: Removed:
1670 Noone knows why this was here, so removed.
1672 2008-02-19 Rob Taylor <rob.taylor@codethink.co.uk>
1674 * tools/scanner.c: (g_igenerator_process_function_symbol):
1675 Move g_idl_node_can_have_member test later, as it broke spotting
1676 get_type's for nodes that can't have members.
1678 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1681 * tools/gidlnode.c: (g_idl_node_can_have_member):
1682 Add g_idl_node_can_have_member.
1684 * tools/scanner.c: (g_igenerator_process_function_symbol):
1685 Use g_idl_node_can_have_member to test if we should add a function
1686 as a member of the type node.
1688 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1690 * gidl/GLib.gidl: Renamed to gidl/gobject-2.0.gidl:
1692 * tests/parser/Makefile.am:
1693 Rename GLib.gidl to gobject-2.0.gidl and install in /usr/share/gidl.
1695 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1697 * tools/scanner.c: (main):
1698 Ignore -pthread when passed to g-idl-scanner.
1700 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1702 * tools/grealpath.h: Added:
1703 * tools/scanner.c: (main):
1704 * tools/scannerlexer.l:
1705 * tools/Makefile.am:
1706 Always use absolute paths with symbolic links resolved when
1707 comparing filenames.
1709 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1711 * gobject-introspection.pc.in:
1712 Provide variables for g-idl-parser, scanner and compiler in the
1715 2008-02-13 Rob Taylor <rob.taylor@codethink.co.uk>
1718 * girepository/Makefile.am:
1719 * tools/Makefile.am:
1720 Rename GCOV_SOURCES to GCOVSOURCES to top automake complaining.
1722 2008-02-10 Johan Dahlin <johan@gnome.org>
1724 * tests/parser/Foo-expected.gidl:
1725 * tests/parser/foo-object.h:
1726 * tests/parser/foo.c: (foo_boxed_copy), (foo_boxed_free),
1727 (foo_boxed_get_type), (foo_boxed_new), (foo_boxed_method):
1730 2008-02-10 Johan Dahlin <johan@gnome.org>
1732 * tests/parser/Foo-expected.gidl:
1733 * tests/parser/foo-object.h:
1734 * tests/parser/foo.c: (foo_enum_get_type), (foo_flags_get_type):
1735 Add enum and flags test.
1737 2008-02-10 Johan Dahlin <johan@gnome.org>
1741 * girepository/Makefile.am:
1742 Make 'make distcheck' work again.
1744 2008-02-10 Johan Dahlin <johan@gnome.org>
1746 * m4/Makefile.am (EXTRA_DIST): its called as-compiler-flag.m4,
1749 * tests/parser/Makefile.am: Only create Foo.gidl when running make
1750 check, eg exclude it from BUILT_SOURCES.
1752 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
1757 * girepository/Makefile.am:
1758 * m4/Makefile.am: Added:
1759 * m4/as-compiler-flag.m4: Added:
1760 * m4/gcov.m4: Added:
1761 * tools/Makefile.am:
1762 Add ability to generate a coverage report.
1763 Adds configure option --enable-gcov and make rule 'check-coverage'.
1765 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
1769 * gidl/Makefile.am: Added:
1770 * girepository/Makefile.am: Added:
1771 * src/Makefile.am: Renamed to tools/Makefile.am:
1772 * src/compiler.c: Renamed to tools/compiler.c:
1773 * src/g-idl-offsets.pl: Renamed to tools/g-idl-offsets.pl:
1774 * src/generate.c: Renamed to tools/generate.c:
1775 * src/gidlmodule.c: Renamed to tools/gidlmodule.c:
1776 * src/gidlmodule.h: Renamed to tools/gidlmodule.h:
1777 * src/gidlnode.c: Renamed to tools/gidlnode.c:
1778 * src/gidlnode.h: Renamed to tools/gidlnode.h:
1779 * src/gidlparser.c: Renamed to tools/gidlparser.c:
1780 * src/gidlparser.h: Renamed to tools/gidlparser.h:
1781 * src/gidlwriter.c: Renamed to tools/gidlwriter.c:
1782 * src/gidlwriter.h: Renamed to tools/gidlwriter.h:
1783 * src/ginfo.c: Renamed to girepository/ginfo.c:
1784 * src/ginvoke.c: Renamed to girepository/ginvoke.c:
1785 * src/girepository.c: Renamed to girepository/girepository.c:
1786 * src/girepository.h: Renamed to girepository/girepository.h:
1787 * src/gmetadata.c: Renamed to girepository/gmetadata.c:
1788 * src/gmetadata.h: Renamed to girepository/gmetadata.h:
1789 * src/scanner.c: Renamed to tools/scanner.c:
1790 * src/scanner.h: Renamed to tools/scanner.h:
1791 * src/scannerlexer.l: Renamed to tools/scannerlexer.l:
1792 * src/scannerparser.y: Renamed to tools/scannerparser.y:
1793 * tests/invoke/Makefile.am:
1794 Split src/ into girepository/ and tools/
1798 * girepository/Makefile.am:
1799 * tests/Makefile.am:
1800 * tests/invoke/Makefile.am:
1801 * tests/parser/Makefile.am:
1802 * tests/roundtrips.sh:
1803 * tools/Makefile.am:
1804 Make distcheck work.
1806 2008-02-04 Rob Taylor <rob.taylor@codethink.co.uk>
1808 * tests/invoke/invoke.c: (main):
1809 * tests/invoke/testfns.c: (test6), (test7):
1810 * tests/invoke/testfns.xml:
1811 Add tests for invokation with a GList argument.
1812 Also tests caller-owns return values.
1814 2008-02-04 Rob Taylor <robtaylor@floopily.org>
1817 Add some documentation for GICallableInfo
1819 2008-02-01 Mark Doffman <mark.doffman@codethink.co.uk>
1822 Correct syntax errors in the DTD file.
1824 * relaxng/c-types.xml:
1825 * relaxng/g-types.xml:
1827 Add a RelaxNG specification for the GObject Introspection XML data.
1828 The Specification has validated all of the test files.
1830 2008-01-25 Rob Taylor <robtaylor@floopily.org>
1832 * tests/roundtrips.sh:
1833 * tests/struct.test:
1834 Add roundtrip tests for structs.
1836 2008-01-11 Johan Dahlin <johan@gnome.org>
1838 * src/scanner.c (g_igenerator_process_function_symbol):
1839 Refactor out g_idle_node_add_member.
1840 (create_node_from_gtype, create_node_from_ctype):
1841 Use case instead of if...else
1842 (get_type_from_type_id):
1843 Rename to create_node_from_gtype
1844 (get_type_from_ctype):
1845 Rename to create_node_from_ctype
1847 Rename ginode -> node, gitype -> type, gifunc -> func.
1849 * src/gidlnode.c (g_idl_node_add_member, g_idl_node_cmp):
1850 Two new functions, refactor out of scanner.c
1852 * src/scanner.c: (g_igenerator_process_function_symbol):
1853 * src/scannerlexer.l:
1854 Do not save the content of the deprecated variable, only
1857 2008-01-11 Johan Dahlin <johan@gnome.org>
1859 * tests/parser/foo-object.h: Add a couple of comment parser tests.
1861 2008-01-11 Jürg Billeter <j@bitron.ch>
1863 * src/scannerlexer.l:
1864 Fix GTK-Doc parsing.
1866 2008-01-11 Jürg Billeter <j@bitron.ch>
1868 * src/scannerlexer.l:
1869 Fix GTK-Doc parsing.
1871 2008-01-11 Jürg Billeter <j@bitron.ch>
1873 * src/scanner.c: (lookup_symbol):
1874 Return unresolved name if we find unknown symbol.
1876 2008-01-11 Jürg Billeter <j@bitron.ch>
1878 * src/scanner.c: (g_igenerator_generate):
1879 Initialize GObject to fix scanning interface properties.
1881 * tests/parser/Foo-expected.gidl:
1882 * tests/parser/foo-object.h:
1883 * tests/parser/foo.c: (foo_interface_get_type):
1884 Test interfaces with GObject prerequisite.
1886 * tests/parser/Makefile.am:
1887 Set G_DEBUG=fatal_warnings to abort test on warnings and criticals.
1889 2007-12-27 Johan Dahlin <johan@gnome.org>
1891 * src/scannerlexer.l:
1892 Parse gtk-doc comments.
1894 * src/gidlwriter.c: (function_generate):
1895 Reorganize, avoid duplication and add support for
1896 writing deprecated functions.
1898 * src/scannerparser.y:
1900 Add new structure CDirective and functions to create/free them.
1902 * src/scanner.c: (g_igenerator_process_function_symbol),
1903 (g_igenerator_process_unregistered_struct_typedef),
1904 (g_igenerator_process_struct_typedef),
1905 (g_igenerator_process_union_typedef),
1906 (g_igenerator_process_enum_typedef),
1907 (g_igenerator_process_function_typedef), (g_igenerator_add_symbol),
1908 (g_igenerator_start_preprocessor):
1909 Parse @deprecated directive for functions.
1910 Remove some more C99isms.
1911 Send in -C to cpp to avoid stripping comments.
1913 * tests/parser/foo-object.h:
1914 * tests/parser/Foo-expected.gidl:
1915 Add deprecated directive
1917 2007-12-27 Johan Dahlin <johan@gnome.org>
1919 * src/scannerlexer.l (intsuffix): Add emacs mode line and
1920 escape ' and " so it looks more like C.
1923 Unlink temporary file used.
1925 2007-12-27 Johan Dahlin <johan@gnome.org>
1927 * src/scanner.c: (g_igenerator_new), (g_igenerator_free),
1928 (g_igenerator_start_preprocessor), (main):
1930 * src/scannerparser.y:
1931 Plug a couple of simple memory leaks.
1933 2007-12-27 Johan Dahlin <johan@gnome.org>
1935 * src/scanner.c: (g_igenerator_parse_macros),
1936 (g_igenerator_start_preprocessor), (g_igenerator_set_verbose),
1939 * src/scannerparser.y:
1940 * tests/parser/Makefile.am:
1942 Improve error reporting, return when the preprocessor fails.
1943 Add a verbose parameter, to aid debugging.
1944 Revert to using a temporary file to communicate between the
1945 preprocessor and the parser, because we need to wait for
1946 the exit code from the pre-processor before starting to parse.
1948 2007-12-16 Johan Dahlin <jdahlin@async.com.br>
1950 * src/Makefile.am: Rename clexer.l to scannerlexer.l and
1951 cparser.y to scannerparser.y
1953 2007-12-11 Johan Dahlin <johan@gnome.org>
1957 * src/scanner.c: (g_igenerator_new):
1959 Get rid of the global the_generator variable.
1961 2007-12-10 Johan Dahlin <johan@gnome.org>
1963 * src/scanner.c (main): Add an output option,
1964 add checks for required parameters
1967 set BUILD_SOURCES and CLEANFILES properly
1969 * src/gidlwriter.c: (g_writer_write_inline), (g_writer_write),
1970 (g_writer_write_indent), (g_writer_write_unindent),
1971 (field_generate), (value_generate), (constant_generate),
1972 (property_generate), (function_generate), (vfunc_generate),
1973 (signal_generate), (interface_generate), (struct_generate),
1974 (union_generate), (boxed_generate), (enum_generate),
1975 (node_generate), (g_writer_write_module), (g_idl_writer_save_file):
1977 * src/scanner.c: (g_igenerator_generate):
1979 * src/scannerwriter.c:
1981 Refactor scannerwriter to only be tied to a GIdlModule and move
1982 it (again!) to gidlwriter.c. Change the writer function to take
1985 2007-12-10 Johan Dahlin <johan@gnome.org>
1988 * src/scanner.c: (g_igenerator_generate):
1990 * src/scannerwriter.c: (g_igenerator_write_inline),
1991 (g_igenerator_write), (g_igenerator_write_indent),
1992 (g_igenerator_write_unindent), (field_generate), (value_generate),
1993 (constant_generate), (property_generate), (function_generate),
1994 (vfunc_generate), (signal_generate), (interface_generate),
1995 (struct_generate), (union_generate), (boxed_generate),
1996 (enum_generate), (node_generate), (module_generate),
1997 (g_scanner_write_file):
1999 Move the scanner gidl writing to a separate source file.
2001 2007-12-10 Johan Dahlin <johan@gnome.org>
2006 Move over all CType construction functions.
2008 * tests/parser/Makefile.am:
2009 Be verbose when printing parsing tests results.
2011 2007-12-10 Johan Dahlin <johan@gnome.org>
2013 * src/scanner.c (g_igenerator_start_preprocessor): Refactor
2014 preprocessor handling to here. Start cpp insteado of cc -E,
2015 always include -U__GNUC__, since it's specific to the preprocessor
2018 * tests/parser/Makefile.am (check-local): Silent diff and skip
2019 -U__GNUC__ which is always defined now
2021 2007-12-10 Johan Dahlin,,, <jdahlin@plasttroll>
2023 reviewed by: <delete if not using a buddy>
2025 * src/scanner.c: (g_igenerator_start_preprocessor), (main):
2026 * tests/parser/Makefile.am:
2028 2007-12-09 Johan Dahlin <johan@gnome.org>
2031 Use GOption for command line options.
2032 (g_igenerator_new, main): Simplify constructor and they way
2033 parameters are passed into it.
2039 * src/gen-introspect.c:
2040 * src/gen-introspect.h:
2042 Rename gen-introspect.[ch] to scanner.[ch]
2044 2007-12-09 Johan Dahlin <johan@gnome.org>
2048 * src/Makefile.am: Rename gen-introspect to g-idl-scanner,
2049 don't make the repository library and the other utilites link against
2052 * src/gen-introspect.c: (g_igenerator_create_object),
2053 (g_igenerator_create_interface), (g_igenerator_create_boxed),
2054 (g_igenerator_create_enum), (g_igenerator_create_flags),
2055 (g_igenerator_process_module_symbol),
2056 (g_igenerator_process_module), (g_igenerator_generate), (main):
2057 * src/gen-introspect.h:
2058 Refactor g_igenerator_process_types into smaller pieces.
2060 * tests/parser/Makefile.am:
2061 Depend on the gen-introspect binary
2063 2007-12-09 Johan Dahlin <johan@gnome.org>
2065 * src/gen-introspect.c (g_igenerator_process_types):
2066 Break into smaller pieces, one for each generated node type.
2068 2007-12-08 Johan Dahlin <johan@gnome.org>
2070 * src/gen-introspect.c: (g_igenerator_process_types),
2071 (g_igenerator_add_module):
2072 * tests/parser/Foo-expected.gidl:
2073 * tests/parser/foo-object.h:
2074 * tests/parser/foo.c: (foo_subobject_class_init),
2075 (foo_subobject_init):
2077 Add a subobject test and make sure to register defined classes
2078 in the lookup symbol hash table.
2080 2007-12-08 Johan Dahlin <johan@gnome.org>
2084 * src/gen-introspect.c: (g_igenerator_new), (lookup_symbol),
2085 (g_igenerator_process_types), (g_igenerator_add_module),
2086 (g_igenerator_add_include_idl), (main):
2087 * src/gen-introspect.h:
2088 * tests/parser/Makefile.am:
2089 * tests/parser/Foo-expected.gidl:
2091 Change the gen-introspect to generate namespaced module names,
2092 such as GLib.Object instead of GObject.
2093 Add a GLib.gidl which introduces GLib.Object and GLib.InitiallyUnowned,
2094 add a --include-idl parameter to gen-introspect,
2095 and update the parser test.
2097 2007-12-08 Johan Dahlin <johan@gnome.org>
2099 * src/gen-introspect.c:
2100 Move main to the end of the file and attempt to make it valid
2103 * tests/parser/Makefile.am (BUILT_SOURCES): Remove .repo here,
2104 we're not quite ready to generate metadata yet.
2109 Add a simple gen-introspect parser test
2111 2007-12-06 Gustavo J. A. M. Carneiro <gjc@gnome.org>
2113 reviewed by: Johan Dahlin <johan@gnome.org>
2116 * gobject-introspection.pc.in:
2118 * src/compiler.c: (format_output), (write_out_metadata), (main):
2119 * src/gen-introspect.c: (main):
2120 * src/gen-introspect.h:
2121 * src/generate.c: (write_callable_info), (write_repository),
2122 (load_metadata), (main):
2123 * src/gidlmodule.c: (g_idl_module_new),
2124 (g_idl_module_build_metadata):
2126 * src/gidlparser.c: (start_element_handler):
2127 * src/ginfo.c: (g_info_new), (g_info_from_entry),
2128 (g_base_info_get_name), (g_base_info_get_namespace),
2129 (g_base_info_is_deprecated), (g_base_info_get_annotation),
2130 (g_base_info_get_metadata), (g_function_info_get_symbol),
2131 (g_function_info_get_flags), (g_function_info_get_property),
2132 (g_function_info_get_vfunc), (signature_offset), (g_type_info_new),
2133 (g_callable_info_may_return_null),
2134 (g_callable_info_get_caller_owns), (g_callable_info_get_n_args),
2135 (g_callable_info_get_arg), (g_arg_info_get_direction),
2136 (g_arg_info_is_return_value), (g_arg_info_is_dipper),
2137 (g_arg_info_is_optional), (g_arg_info_may_be_null),
2138 (g_arg_info_get_ownership_transfer), (g_type_info_is_pointer),
2139 (g_type_info_get_tag), (g_type_info_get_param_type),
2140 (g_type_info_get_interface), (g_type_info_get_array_length),
2141 (g_type_info_is_zero_terminated),
2142 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
2143 (g_error_domain_info_get_quark), (g_error_domain_info_get_codes),
2144 (g_value_info_get_value), (g_field_info_get_flags),
2145 (g_field_info_get_size), (g_field_info_get_offset),
2146 (g_registered_type_info_get_type_name),
2147 (g_registered_type_info_get_type_init),
2148 (g_struct_info_get_n_fields), (g_struct_info_get_field),
2149 (g_struct_info_get_n_methods), (g_struct_info_get_method),
2150 (find_method), (g_struct_info_find_method),
2151 (g_enum_info_get_n_values), (g_enum_info_get_value),
2152 (g_object_info_get_parent), (g_object_info_get_type_name),
2153 (g_object_info_get_type_init), (g_object_info_get_n_interfaces),
2154 (g_object_info_get_interface), (g_object_info_get_n_fields),
2155 (g_object_info_get_field), (g_object_info_get_n_properties),
2156 (g_object_info_get_property), (g_object_info_get_n_methods),
2157 (g_object_info_get_method), (g_object_info_find_method),
2158 (g_object_info_get_n_signals), (g_object_info_get_signal),
2159 (g_object_info_get_n_vfuncs), (g_object_info_get_vfunc),
2160 (g_object_info_get_n_constants), (g_object_info_get_constant),
2161 (g_interface_info_get_n_prerequisites),
2162 (g_interface_info_get_prerequisite),
2163 (g_interface_info_get_n_properties),
2164 (g_interface_info_get_property), (g_interface_info_get_n_methods),
2165 (g_interface_info_get_method), (g_interface_info_find_method),
2166 (g_interface_info_get_n_signals), (g_interface_info_get_signal),
2167 (g_interface_info_get_n_vfuncs), (g_interface_info_get_vfunc),
2168 (g_interface_info_get_n_constants),
2169 (g_interface_info_get_constant), (g_property_info_get_flags),
2170 (g_signal_info_get_flags), (g_signal_info_get_class_closure),
2171 (g_signal_info_true_stops_emit), (g_vfunc_info_get_flags),
2172 (g_vfunc_info_get_offset), (g_vfunc_info_get_signal),
2173 (g_constant_info_get_value), (g_union_info_get_n_fields),
2174 (g_union_info_get_field), (g_union_info_get_n_methods),
2175 (g_union_info_get_method), (g_union_info_is_discriminated),
2176 (g_union_info_get_discriminator_offset),
2177 (g_union_info_get_discriminator):
2178 * src/ginvoke.c: (g_function_info_invoke):
2179 * src/girepository.c: (g_irepository_register),
2180 (g_irepository_unregister), (g_irepository_get_default),
2181 (count_interfaces), (g_irepository_get_n_infos), (find_interface),
2182 (g_irepository_get_info), (g_irepository_find_by_name),
2183 (g_irepository_get_shared_library),
2184 (g_irepository_build_search_path), (g_irepository_register_file),
2185 (g_irepository_error_quark):
2186 * src/girepository.h:
2187 * src/gmetadata.c: (g_metadata_get_dir_entry),
2188 (g_metadata_check_sanity), (validate_header),
2189 (validate_array_type_blob), (validate_iface_type_blob),
2190 (validate_param_type_blob), (validate_error_type_blob),
2191 (validate_type_blob), (validate_arg_blob),
2192 (validate_signature_blob), (validate_function_blob),
2193 (validate_callback_blob), (validate_constant_blob),
2194 (validate_value_blob), (validate_field_blob),
2195 (validate_property_blob), (validate_signal_blob),
2196 (validate_vfunc_blob), (validate_struct_blob),
2197 (validate_enum_blob), (validate_object_blob),
2198 (validate_interface_blob), (validate_errordomain_blob),
2199 (validate_union_blob), (validate_blob), (validate_directory),
2200 (validate_annotations), (g_metadata_validate), (_g_metadata_init),
2201 (g_metadata_new_from_memory), (g_metadata_new_from_const_memory),
2202 (g_metadata_new_from_mapped_file), (g_metadata_free),
2203 (g_metadata_set_module), (g_metadata_get_namespace):
2205 * tests/Makefile.am:
2206 * tests/invoke/Makefile.am:
2207 * tests/invoke/invoke-namespace-find.sh:
2208 * tests/invoke/invoke.c: (main):
2210 Add a namespace/shared library mapping. fixes #313268.
2212 2007-12-03 Johan Dahlin <johan@gnome.org>
2214 * src/gidlparser.c (parse_type_internal): Disable char/gchar and
2217 2007-11-30 Jürg Billeter <j@bitron.ch>
2223 * src/gen-introspect.c: (g_idl_node_cmp), (g_igenerator_new),
2224 (g_igenerator_write_inline), (g_igenerator_write),
2225 (g_igenerator_write_indent), (g_igenerator_write_unindent),
2226 (field_generate), (value_generate), (constant_generate),
2227 (property_generate), (function_generate), (vfunc_generate),
2228 (signal_generate), (interface_generate), (struct_generate),
2229 (union_generate), (boxed_generate), (enum_generate),
2230 (node_generate), (module_generate), (get_type_from_type_id),
2231 (str_replace), (g_igenerator_process_properties),
2232 (g_igenerator_process_signals), (g_igenerator_process_types),
2233 (get_type_from_ctype), (g_igenerator_process_function_symbol),
2234 (g_igenerator_process_unregistered_struct_typedef),
2235 (g_igenerator_process_struct_typedef),
2236 (g_igenerator_process_union_typedef),
2237 (g_igenerator_process_enum_typedef),
2238 (g_igenerator_process_function_typedef),
2239 (g_igenerator_process_constant), (g_igenerator_process_symbols),
2240 (g_igenerator_add_symbol), (g_igenerator_is_typedef),
2241 (g_igenerator_generate), (main), (csymbol_new),
2242 (csymbol_get_const_boolean), (ctype_new), (ctype_copy),
2243 (cbasic_type_new), (ctypedef_new), (cstruct_new), (cunion_new),
2244 (cenum_new), (cpointer_new), (carray_new), (cfunction_new),
2245 (eat_hspace), (eat_line), (read_identifier),
2246 (g_igenerator_parse_macros):
2247 * src/gen-introspect.h:
2249 Import gen-introspect to generate introspection information by
2252 2007-11-30 Jürg Billeter <j@bitron.ch>
2254 * src/gidlnode.c: (g_idl_node_new): support creating callback nodes
2256 2007-11-30 Jürg Billeter <j@bitron.ch>
2258 * src/gidlparser.c: (end_element_handler): Don't leave requires
2261 2007-11-29 Johan Dahlin <johan@gnome.org>
2263 * src/gidlparser.c (parse_type_internal): Add char,
2264 gchar and guchar to the builtin types.
2266 2007-11-26 Johan Dahlin <johan@gnome.org>
2268 * src/ginfo.c: (g_object_info_get_type_name),
2269 (g_object_info_get_type_init):
2270 * src/girepository.c: (g_irepository_is_registered):
2271 * src/girepository.h:
2273 Add g_object_info_get_type_name, g_object_info_get_type_init and
2274 g_irepository_is_registered.
2276 2006-08-14 Jürg Billeter <j@bitron.ch>
2278 * src/gidlparser.c: (end_element_handler): Don't leave
2279 namespace and implements states too early.
2282 2007-11-26 Johan Dahlin <johan@gnome.org>
2284 * src/gmetadata.c (validate_struct_blob):
2285 pass blob_type to validate_function_blob instead of
2286 hard-coding BLOB_TYPE_STRUCT.
2288 Patch by Torsten Schoenfeld, fixes #314190
2290 2006-10-03 Torsten Schoenfeld <tsch@cvs.gnome.org>
2292 * src/compiler.c, src/generate.c, src/gidlnode.c,
2293 src/gidlparser.c, src/ginfo.c, src/girepository.c,
2294 tests/invoke/invoke.c, test/invoke/testfns.c: Hush compiler
2295 warnings about return values, signedness mismatches, unused
2296 variables, and unhandles enum values in switch statements.
2298 * tests/invoke/Makefile.am: Don't install the invoke test program.
2299 Add -I ../../src to the cflags used for the test functions files.
2301 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
2303 * src/girepository.h: Export g_invoke_error_quark.
2305 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
2307 * src/ginvoke.c: Remove the fallback implementation of
2308 g_function_info_invoke since we now formally depend on libffi.
2310 2005-07-25 Matthias Clasen <mclasen@redhat.com>
2312 * src/Makefile, tests/Makefile, tests/invoke/Makefile:
2313 Remove these files from cvs, as they are now generated.
2315 * src/gmetadata.c (validate_iface_type_blob): Don't
2316 complain if blob->pointer is not set, since that
2317 happens for enum and flag types. (#308935, Gustavo
2320 * Commit an autoconf-conversion patch by
2321 Gustavo Carneiro (#308708)
2323 2005-05-24 Matthias Clasen <mclasen@redhat.com>
2325 * src/compiler.c (main): Use it here to validate
2326 the generated metadata.
2328 * src/gmetadata.[hc]: Add code to validate a
2331 * metadata-format.txt: Updates
2333 2005-05-22 Matthias Clasen <mclasen@redhat.com>
2335 * tests/*: Add struct offsets to field and vfunc
2338 * src/generate.c (write_vfunc_info): Write offset
2339 information for vfuncs.
2341 * src/gidlnode.c (g_idl_node_build_metadata): Write
2342 the struct offsets into the metadata.
2344 * src/gidlparser.c: Parse the offset attributes of
2345 field and vfunc elements.
2347 * src/gidlnode.h: Add offset members to field and
2350 2005-05-21 Matthias Clasen <mclasen@redhat.com>
2354 * gidl.dtd: Updates.
2356 * src/g-idl-offsets.pl: A perl script which reads a .gidl
2357 file, creates, compiles and runs a C file, and folds the
2358 resulting struct offsets back into the .gidl file.
2360 2005-05-20 Matthias Clasen <mclasen@redhat.com>
2362 * src/gidlparser.c (start_field): Make fields in objects
2365 * src/gidlmodule.c: Include string.h
2370 * metadata-format.txt: Cleanup basic types.
2371 * src/*: Adapt to the changes.
2372 * tests/*: Adapt to the changes.
2373 * examples/gdk-pixbuf.gidl: Adapt to the changes.
2375 * src/gidlnode.c (g_idl_node_get_size): Report the correct
2376 size for enum blobs.
2377 (g_idl_node_get_full_size): Report the correct size for
2380 * src/gidlmodule.c (g_idl_module_build_metadata): Add some
2381 error checking for blob sizes.
2383 2005-05-19 Matthias Clasen <mclasen@redhat.com>
2385 * src/gidlnode.c (g_idl_node_build_metadata): Correctly handle
2386 interface types for which is_pointer is FALSE, e.g. enums.
2388 * src/gidlnode.c (g_idl_node_get_full_size)
2389 * src/gidlparser.c (parse_type_internal):
2390 * src/generate.c (write_type_info): Support unspecialized
2391 lists, hashtables and errors. Also emit a '*' after these.
2395 2005-05-17 Matthias Clasen <mclasen@redhat.com>
2399 * metadata-format.txt: Cleanups by Maciej Katafiasz.
2401 2005-05-15 Matthias Clasen <mclasen@redhat.com>
2403 * src/*.c: Change the directory to be addressed by
2404 1-based indexes, and use an index of zero to mean
2407 2005-05-15 Matthias Clasen <mclasen@redhat.com>
2409 * tests/roundtrips.sh (SIMPLE_TESTS): Add union.test.
2411 * tests/union.test: Add a union test.
2413 * src/generate.c: Handle unions.
2415 * src/girepository.h:
2416 * src/ginfo.c: Add GIUnionInfo and functions to access it.
2418 * src/gidlnode.c: Handle GIdlNodeUnion nodes.
2420 * src/gidlparser.c (start_union): Parse <union> elements.
2422 * src/gidlnode.h: Add a GIdlNodeUnion.
2424 * gidl.dtd: Add a <union> element.
2426 * src/gmetadata.c (g_metadata_check_sanity): Check
2429 * src/gmetadata.h: Add union_blob_size to Header,
2432 * metadata-format.txt: Add a UnionBlob.
2434 2005-05-13 Matthias Clasen <mclasen@redhat.com>
2436 * tests/*: Update testcases.
2438 * src/generate.c (write_callable_info): Don't forget to
2439 write transfer and null-ok attributes for return types
2442 * src/girepository.h:
2443 * src/ginfo.c (g_callable_info_may_return_null):
2444 New function to find out if a function may return NULL.
2446 * src/compiler.c (format_output): Make the generated
2449 * README: Point to a recent libffi snapshot.
2451 * tests/invoke/*: Some invoke tests.
2453 * src/Makefile: Add ginvoke.c and the necessary
2456 * src/girepository.h (g_function_info_invoke): Add
2459 * src/ginvoke.c (g_function_info_invoke): Initial
2460 implementation of invoke functionality based on libffi.
2462 * src/gidlnode.c (g_idl_node_build_metadata): Pass the
2463 strings and types hash tables in the right order when
2465 (find_entry_node): Free the name parts.
2467 2005-05-12 Johan Dahlin <johan@gnome.org>
2469 * src/generate.c: Generate consistent end tags.
2473 2005-05-12 Matthias Clasen <mclasen@redhat.com>
2477 * src/gidlparser.c (start_function): Actually add
2478 methods to objects. (Steven Walter)
2480 * src/girepository.h:
2481 * src/ginfo.c: Rename Transfer and Direction to
2482 GITransfer and GIDirection. (Torsten Schoenfeld)
2484 * tests/*: Make tests work with the changes in name
2487 * src/gidlnode.c (find_entry_node): Parse qualified
2488 names and generate xref nodes for them if needed. Don't
2489 require all modules to be loaded any more.
2491 * src/gidlmodule.c (g_idl_module_build_metadata): Choke
2494 * src/ginfo.c (g_object_info_get_parent): Return NULL
2495 if blob->parent is 0. Still need to make sure index
2498 * src/generate.c: Generate qualified names when
2499 referring to non-local types. Emit transfer attribute
2502 * src/compiler.c (format_output): Put the function
2503 attributes where gcc accepts them.
2505 2005-05-11 Matthias Clasen <mclasen@redhat.com>
2507 * src/compiler.c (main): Add a --verbose cmdline option
2508 and only log messages if it is specified.
2511 * src/gidlnode.c (init_stats, dump_stats): Collect some
2512 statistics on string and type sharing.
2514 * src/gidlmodule.c (g_idl_module_build_metadata): Use
2515 g_message() instead of fprintf().
2517 * src/gidlnode.c (g_idl_node_free): Make this more robust.
2518 (g_idl_node_get_size): Implement for structs.
2519 (g_idl_node_get_full_size): Handle parent being NULL.
2520 (serialize_type): Handle lookup failures more gracefully.
2522 2005-05-10 Matthias Clasen <mclasen@redhat.com>
2524 * src/gidlnode.c (g_idl_node_get_full_size): Correct the
2525 size calculation for 2-parameter types and for objects.
2527 * src/compiler.c: Add a cmdline option for debug output
2528 and install a log handler to implement it.
2529 * src/gidlnode.c: Add some debug spew.
2533 * src/gidlmodule.c (g_idl_module_build_metadata): Don't
2534 forget to count the module name when calculating the
2535 required size for the metadata.
2538 * src/gidlparser.c: Fix compiler warnings.
2540 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2542 * src/compiler.c (main): Free the option context.
2544 * gidl.dtd: Clean up handling of names. All elements
2545 have a "name", only the elements corresponding to
2546 actual callable functions (function, method, constructor),
2547 have an additional "symbol" attribute holding the
2548 dlsym()-able function name.
2550 * src/generate.c: Adapt to generate xml matching the
2554 * src/gidlnode.c: Adapt to parse the new dtd.
2556 * tests/*.test: Adjust to the new dtd.
2558 * metadata-format.txt:
2559 * src/gmetadata.h: Remove the short_name field
2561 * src/gmetadata.c: Shrink size of ValueBlob to 12.
2562 * src/girepository.h:
2563 * src/ginfo.c (g_value_info_get_short_name): Removed
2565 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2567 * gidl.dtd: Allow constructors for boxed types,
2568 patch by Jonathan Blandford.
2571 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2573 * --- Initial import ---