1 2008-08-18 Johan Dahlin <johan@gnome.org>
3 * girepository/girepository.c (g_type_tag_to_string):
4 * girepository/girepository.h:
5 * girepository/girnode.c (g_ir_node_get_full_size_internal),
7 * girepository/girnode.h:
8 Make enum serializing functions public. Clean up some whitespace.
10 2008-08-17 Johan Dahlin <johan@gnome.org>
12 * docs/global-module-registry.txt:
13 Add a document for an on disk module registry format
15 2008-08-17 Johan Dahlin <johan@gnome.org>
18 * gir/gio-2.0-good.gir:
21 2008-08-17 Johan Dahlin <johan@gnome.org>
24 * gir/glib-2.0-good.gir:
25 * gir/gobject-2.0-good.gir:
26 * giscanner/cgobject.py:
27 * giscanner/glibtransformer.py:
28 Regenerate GObject & GType.
29 Avoid warnings when generating gobject-2.0.gir.
30 Introspect a little more, and skip *_get_type functions.
32 2008-08-17 Colin Walters <walters@verbum.org>
34 * gir/glib-2.0.gir, gir/gobject-2.0.gir:
35 Rename to -good, always generate during build.
36 * gir/Makefile.am: Ensure .gir files dep on
38 * Makefile.am: Switch build order to ensure
39 the scanner is ready before we do gir/.
40 * tools/g-ir-scanner: Look for .git too.
42 2008-08-17 Johan Dahlin <johan@gnome.org>
44 * girepository/gtypelib.c (validate_enum_blob):
45 * giscanner/glibtransformer.py:
46 * giscanner/transformer.py:
47 Remove resolve_possible_typedefs, it was unused.
48 Allow multiple enum values of the sample value in an enum,
49 since it's actually pretty common.
50 Register enums so they can be resolved too.
52 2008-08-16 Johan Dahlin <johan@gnome.org>
54 * giscanner/girparser.py:
55 Parse enumeration/bitfield.
57 2008-08-16 Johan Dahlin <johan@gnome.org>
59 * giscanner/girparser.py:
62 2008-08-16 Johan Dahlin <johan@gnome.org>
64 * giscanner/glibtransformer.py:
65 Resolve type names for alias targets
66 * giscanner/transformer.py:
67 Skip FILE* parameters fow now
69 2008-08-16 Johan Dahlin <johan@gnome.org>
72 * gir/gobject-2.0.gir:
75 * tests/scanner/Makefile.am:
78 2008-08-15 Colin Walters <walters@verbum.org>
80 * giscanner/glibtransformer.py: Explicitly construct
81 new list, since we're deleting as we iterate.
82 Don't delete all structures which end in Class; just
83 ones which have a paired GObject.
84 Fix printing of type warning.
85 * giscanner/transformer.py: Make strip_namespace_object
86 be the identity function if it doesn't match the
89 2008-08-15 Colin Walters <walters@verbum.org>
91 * giscanner/cgobject.py: Define yet more argument
92 prototypes; fix prototype for g_type_fundamental.
94 2008-08-14 Johan Dahlin <johan@gnome.org>
100 * tools/generate.c (write_struct_info):
101 Fix generator for constant/gobject/struct
103 2008-08-14 Johan Dahlin <johan@gnome.org>
107 * tools/generate.c (write_enum_info):
108 Fix generation of enum/bitfields
110 2008-08-14 Johan Dahlin <johan@gnome.org>
112 * girepository/girparser.c (start_field), (start_constant),
113 (start_type), (end_element_handler):
114 Clear up constant parsing
119 * tools/generate.c (write_callable_info), (write_function_info),
120 (write_callback_info), (write_constant_info), (write_signal_info),
121 (write_vfunc_info), (write_property_info), (write_object_info),
122 (write_interface_info):
123 Constants/Signals are handled now.
125 2008-08-14 Johan Dahlin <johan@gnome.org>
127 * girepository/girparser.c (start_type):
128 Don't require c:type.
132 Update, remove parts we don't support yet
133 * tests/roundtrips.sh:
135 * tools/generate.c (write_type_info), (write_field_info),
136 (write_callable_info), (write_struct_info):
137 Make it emit proper gir.
139 2008-08-14 Johan Dahlin <johan@gnome.org>
141 * giscanner/transformer.py:
142 New internal function for adding a new node.
144 2008-08-14 Johan Dahlin <johan@gnome.org>
147 Define an internal _H_ variable so we skip parsing both
148 i18n headers, only one is needed.
150 Add the glib-2.0.gir too.
151 * giscanner/glibast.py:
152 Add gconstpointer as an alias for ANY
153 * giscanner/transformer.py:
154 Do not lower case enumeration names per se.
155 Skip functions which has parameters called 'va_list'
157 2008-08-14 Colin Walters <walters@verbum.org>
159 * giscanner/transformer.py: Comment data structures.
160 Also squash pointers in resolve_type_name to correspond
161 with what we do for params.
162 * giscanner/glibtransformer.py: Print warnings in more
163 situations. Rework checks for method/constructor to
164 look up in our GType database instead of just checking
165 for *. Avoid generating <record> for GObject which
166 duplicate the <class>.
167 * gir/Makefile.am: Generate glib-2.0.gir and gobject-2.0.gir
170 2008-08-14 Johan Dahlin <johan@gnome.org>
172 * giscanner/girwriter.py:
173 * giscanner/glibast.py:
174 * giscanner/glibtransformer.py:
175 * giscanner/transformer.py:
178 Add pyflakes.py and run it in make check.
179 Update the source code to fix the errors reported by
182 2008-08-14 Johan Dahlin <johan@gnome.org>
185 * giscanner/girparser.py:
186 * giscanner/glibast.py:
187 * giscanner/glibtransformer.py:
188 Refactor the parser a bit.
189 Add parent type to interfaces and update callsites.
191 2008-08-14 Johan Dahlin <johan@gnome.org>
193 * giscanner/glibtransformer.py:
194 * giscanner/utils.py:
195 Refactor a bit, avoid isinstance and add a method
196 for each type we parse.
198 2008-08-14 Johan Dahlin <johan@gnome.org>
201 * giscanner/girparser.py:
202 * giscanner/glibtransformer.py:
204 Run pep8.py in make check, fix old errors.
206 2008-08-13 Colin Walters <walters@verbum.org>
208 * giscanner/girparser.py: Parse records.
210 2008-08-13 Colin Walters <walters@verbum.org>
212 * gir/Makefile.am: Install again.
213 * gir/gobject-2.0.gir: Add some more bits.
215 2008-08-13 Colin Walters <walters@verbum.org>
217 * gir/gobject-2.0.gir: Use correct namespace, add GType.
218 * giscanner/girparser.py: Handle aliases.
219 * giscanner/transformer.py: Record aliases. Make resolver
220 functions public; we now call into these explicitly from
221 glibtransformer. Handle resolving aliases.
222 * giscanner/glibtransformer.py: Separate our internal namespace
223 from included ones. Call up into transformer's resolver functions.
225 2008-08-13 Johan Dahlin <johan@gnome.org>
227 * girepository/girnode.c (g_ir_node_get_full_size_internal):
228 * girepository/girparser.c (start_class):
229 * giscanner/glibtransformer.py:
230 Allow get_type to be None, set a get_type for GInitiallyUnowned too.
232 2008-08-13 Johan Dahlin <johan@gnome.org>
234 * giscanner/cgobject.py:
235 Register GInitiallyUnowned
236 * giscanner/girwriter.py:
237 * giscanner/glibtransformer.py:
238 Special case GObject/GInitially owned as they are a bit special to use.
240 2008-08-13 Colin Walters <walters@verbum.org>
242 * tests/scanner/Foo-expected.gir, tests/scanner/utility-expected.gir:
243 Object is in GObject namespace.
245 2008-08-13 Colin Walters <walters@verbum.org>
247 * giscanner/girparser.py: Fix processing of functions
250 2008-08-13 Colin Walters <walters@verbum.org>
252 * giscanner/girparser.py: Parse more than just <class.
253 * giscanner/glibtransformer.py: Put aliases in a separate
254 data structure since their name is not canonicall.
255 * giscanner/transformer.py: Handle resolving type names
258 2008-08-13 Johan Dahlin <johan@gnome.org>
260 * tools/g-ir-scanner:
261 Allow multiple libraries
262 * giscanner/glibtransformer.py:
263 Rename load_library to add_library, traverse over all libraries
264 when trying to resolve a function
266 2008-08-12 Colin Walters <walters@verbum.org>
268 * giscanner/transformer.py: Record typedefs as <alias> elements.
269 Also attempt to look up types in external namespaces.
270 * giscanner/girwriter.py: Write them.
271 * giscanner/glibtransformer.py: Rework resolver using real instanceof
272 checks. Resolve interface methods and properties.
273 * tests/scanner/foo-object.h: Add a method with typedef.
274 * tests/scanner/Foo-expected.gir: Update.
275 * girepository/girnode.c: Debug tweaks.
276 * girepository/girparser.c: Make a first pass through the XML where we
277 record all the aliases. This lets us resolve them as we go through the
279 * gir/Makefile.am: Don't install gobject-2.0.gir; we want that to come
282 2008-08-12 Colin Walters <walters@verbum.org>
284 * giscanner/glibtransformer.py: Resolve typedefs (e.g. AtkAttributeSet -> GSList).
285 Correctly do subclasseing in 2nd pass resolution. Handle callbacks in structure
287 * giscanner/transformer.py: Record typedefs and expose public API for resolving
289 * tests/scanner/Foo-expected.gir: Fix expected callback types.
291 2008-08-12 Colin Walters <walters@verbum.org>
293 * giscanner/glibtransformer.py: Also transform object properties.
295 2008-08-12 Colin Walters <walters@verbum.org>
297 * giscanner/glibtransformer.py: Also transform callbacks
298 and structure field types.
299 * tests/scanner/Fooe-expected.gir: Update to expect correct
300 names for callbacks and structs.
302 2008-08-12 Colin Walters <walters@verbum.org>
304 * girepository/girparser.c: Handle 'any'.
305 * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
308 2008-08-12 Colin Walters <walters@verbum.org>
310 * giscanner/glibtransformer.py: We need to do type
311 resolution in a second pass after we've seen all the
314 2008-08-12 Colin Walters <walters@verbum.org>
316 * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
317 Add enum return value.
318 * giscanner/glibtransformer.py: Transform function return types
321 2008-08-12 Colin Walters <walters@verbum.org>
323 * tests/scanner/Makefile.am: Dep .gir files on scanner
324 sources too. Also remove @ so we see scanner invocations.
326 2008-08-12 Colin Walters <walters@verbum.org>
328 * girepository/girparser.c, girepository/gtypelib.c,
329 girepository/gtypelib.h, girepository/girnode.c:
330 Remove usage of (GAPI-oriented) TypeTag in favor of
331 GITypeTag from girepository.h.
333 2008-08-10 Colin Walters <walters@verbum.org>
335 * tests/roundtrips.sh: Use the correct tests.
337 2008-08-10 Colin Walters <walters@verbum.org>
339 * giscanner/cgobject.py: Declare/wrap a few more functions.
340 Fix parameter types for g_object_new and g_type_fundamental.
342 2008-08-10 Colin Walters <walters@verbum.org>
344 * giscanner/cgobject.py: Add new decorator @gwrap which forces
345 us to declare types for both return value and parameters. The
346 ctypes default of 'int' is bad because it hides 32/64 bit
347 problems. Convert all existing functions to use it.
349 2008-08-09 Johan Dahlin <johan@gnome.org>
351 * giscanner/__init__.py:
353 * giscanner/cgobject.py:
354 * giscanner/gidlparser.py:
355 * giscanner/gidlwriter.py:
356 * giscanner/girparser.py:
357 * giscanner/girwriter.py:
358 * giscanner/glibast.py:
359 * giscanner/glibtransformer.py:
360 * giscanner/odict.py:
361 * giscanner/sourcescanner.py:
362 * giscanner/transformer.py:
363 * giscanner/utils.py:
364 * giscanner/xmlwriter.py:
365 * tools/g-ir-scanner:
369 2008-08-09 Johan Dahlin <johan@gnome.org>
372 * relaxng/c-types.xml:
373 * relaxng/g-types.xml:
374 * relaxng/relaxng.rng:
376 Remove outdated relaxng schemas.
378 2008-08-09 Johan Dahlin <johan@gnome.org>
381 Rename metadata to typelib in variable names,
384 2008-08-09 Johan Dahlin <johan@gnome.org>
388 Remove old C scanner, which got rewritten in python.
390 2008-08-09 Johan Dahlin <johan@gnome.org>
392 * girepository/Makefile.am:
402 Move shared *.[ch] files to girepository from tools
404 2008-08-09 Johan Dahlin <johan@gnome.org>
409 * tests/constant.test:
412 * tests/function.test:
413 * tests/gobject.test:
414 * tests/interface.test:
421 Rename *.test to *.gir
423 2008-08-09 Johan Dahlin <johan@gnome.org>
427 * tests/parser/Foo-expected.gir:
428 * tests/parser/Makefile.am:
429 * tests/parser/foo-object.h:
430 * tests/parser/foo.c:
431 * tests/parser/utility-expected.gir:
432 * tests/parser/utility.c:
433 * tests/parser/utility.h:
434 * tests/scanner/Makefile.am:
435 Rename tests/parser to test/scanner
437 2008-08-08 Colin Walters <walters@verbum.org>
439 * tests/roundtrips.sh: Use local .gir files again.
441 2008-08-08 Colin Walters <walters@verbum.org>
443 * tests/invoke/Makefile.am: .gir file depends on libtool
446 2008-08-08 Colin Walters <walters@verbum.org>
448 * tools/girnode.c: Pass through parent node so we can
449 print the node whose child is NULL, if that occurs.
451 2008-08-08 Johan Dahlin <johan@gnome.org>
454 Disable roundtrip tests which are not yet working
455 * tests/invoke/testfns.gir:
458 2008-08-08 Johan Dahlin <johan@gnome.org>
460 * giscanner/girwriter.py:
462 * giscanner/glibast.py:
463 * giscanner/glibtransformer.py:
464 Swap order of members, to keep it consistent with
467 2008-08-08 Johan Dahlin <johan@gnome.org>
469 * girepository/gtypelib.c (validate_header):
470 * girepository/gtypelib.h:
472 * giscanner/girwriter.py:
473 * giscanner/sourcescanner.c (gi_source_symbol_ref),
474 (gi_source_symbol_unref):
477 * tests/constant.test:
480 * tests/function.test:
481 * tests/gobject.test:
482 * tests/interface.test:
483 * tests/invoke/Makefile.am:
484 * tests/invoke/testfns.xml:
486 * tests/parser/Makefile.am:
487 * tests/roundtrips.sh:
494 * tools/compiler.c (main):
495 * tools/generate.c (write_callable_info), (write_function_info),
497 * tools/gidlmodule.c:
498 * tools/gidlmodule.h:
501 * tools/gidlparser.c:
502 * tools/gidlparser.h:
503 * tools/gidlwriter.c:
504 * tools/gidlwriter.h:
505 * tools/scanner.c (create_node_from_gtype),
506 (create_node_from_ctype), (g_igenerator_process_properties),
507 (g_igenerator_process_signals), (g_igenerator_create_object),
508 (g_igenerator_create_interface), (g_igenerator_create_boxed),
509 (g_igenerator_create_enum), (g_igenerator_create_flags),
510 (g_igenerator_process_function_symbol),
511 (g_igenerator_process_unregistered_struct_typedef),
512 (g_igenerator_process_struct_typedef),
513 (g_igenerator_process_union_typedef),
514 (g_igenerator_process_enum_typedef),
515 (g_igenerator_process_function_typedef),
516 (g_igenerator_process_constant), (g_igenerator_process_symbols),
517 (g_igenerator_add_module), (g_igenerator_add_include_idl):
518 Merge in the gir-compiler branch.
519 Thanks to Philip and Colin for their help.
521 2008-07-26 Colin Walters <walters@verbum.org>
523 * tools/Makefile.am (bin_PROGRAMS): Install g-idl-compiler
524 and g-idl-generate to go along with how we're changing this
525 module to be installed.
526 * gobject-introspection-1.0.pc.in: Set up Cflags and Libs.
528 2008-07-24 Colin Walters <walters@verbum.org>
530 * girepository/girepository.c (g_irepository_register): Add
531 environment variable G_IREPOSITORY_VERBOSE so we can print
532 out what we're doing.
533 * girepository/girepository.c (g_irepository_register_file):
534 Add GError error message to g_debug call.
536 2008-07-08 Jürg Billeter <j@bitron.ch>
538 * giscanner/glibast.py:
542 2008-06-21 Johan Dahlin <jdahlin@async.com.br>
544 * giscanner/girparser.py (GIRParser._parse_api): Ignore a few
547 2008-06-20 Johan Dahlin <jdahlin@async.com.br>
550 * giscanner/girwriter.py:
551 * giscanner/transformer.py:
552 * tests/parser/Foo-expected.gir:
553 * tests/parser/foo-object.h:
554 * tests/parser/foo.c (foo_object_allow_none):
555 Add support for gtk-doc annotations for allow-none.
558 2008-06-19 Johan Dahlin <jdahlin@async.com.br>
561 * giscanner/girwriter.py:
562 * giscanner/glibast.py:
563 * giscanner/glibtransformer.py:
564 * giscanner/transformer.py:
565 * tests/parser/Foo-expected.gir:
566 Start using abstract type instead of the raw C types.
567 Register a bunch of glib types we care about.
569 2008-06-19 Rob Taylor <rob.taylor@codethink.co.uk>
574 2008-06-08 Philip Van Hoof <pvanhoof@gnome.org>
576 * girepository/girepository.c:
577 * girepository/gtypelib.c:
578 * girepository/ginfo.c:
579 * girepository/ginvoke.c:
580 * girepository/girepository.h:
581 * girepository/gtypelib.h:
582 * girepository/gmetadata.c:
583 * girepository/Makefile.am:
584 * girepository/gmetadata.h:
586 * tools/gidlmodule.c:
589 * tools/gidlmodule.h:
590 * tools/gidlparser.c:
592 Renamed GMetadata to GTypelib
594 2008-06-07 Johan Dahlin <jdahlin@async.com.br>
596 * giscanner/xmlwriter.py:
597 Improve line wrapping when > 79 charaters
599 2008-06-05 Jürg Billeter <j@bitron.ch>
602 * giscanner/girwriter.py:
603 * giscanner/transformer.py:
604 Use <type> element for field types
605 * tests/parser/Foo-expected.gir:
608 2008-06-04 Johan Dahlin <jdahlin@async.com.br>
610 * giscanner/glibtransformer.py:
611 Fix a bug which prevented GdkEvent from being generated
613 2008-06-03 Johan Dahlin <jdahlin@async.com.br>
615 * giscanner/Makefile.am:
617 * giscanner/girwriter.py:
618 * giscanner/glibast.py:
619 * giscanner/glibtransformer.py:
620 * giscanner/transformer.py:
621 * giscanner/utils.py:
622 * tests/parser/Foo-expected.gir:
623 Improve enum member parsing and introspection
625 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
627 * giscanner/scannerparser.y:
628 * giscanner/sourcescanner.h:
629 * giscanner/sourcescanner.py:
630 Add a new source type enum for member.
631 Use __repr__ for improved debugging
632 * giscanner/girparser.py:
634 * giscanner/transformer.py:
635 Improve parsing of struct members.
636 * tests/parser/foo-object.h:
639 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
641 * giscanner/xmlwriter.py:
642 Improve error reporting when trying to quote None.
643 * giscanner/girparser.py:
644 Do not print warnings when including more complete .gir files
645 * giscanner/girwriter.py:
646 Do not require a name for parameters, add a todo for singletons
647 * giscanner/glibtransformer.py:
648 Refactor the way structs are done, add a couple of hacks to allow
650 * giscanner/transformer.py:
651 Add enough hacks so cairo, atk and pango.gir can be parsed properly
652 * gobject-introspection-1.0.pc.in:
653 Export girdir, so we can access gobject-2.0.gir from outside
655 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
657 * tools/g-ir-scanner:
658 * tests/parser/Makefile.am:
659 Update sys.path before running the parser so we don't have
660 to setup PYTHONPATH ourselves.
664 * girepository/Makefile.am:
665 * giscanner/transformer.py:
666 * gobject-introspection-1.0.pc.in:
667 * gobject-introspection.pc.in:
670 Rename pkg-config name to gobject-introspection-1.0,
671 Do not installed anything which is not using the gir format.
672 Disable compililation the old C scanner, but still keep the source
673 until all the remaning functionallity has been ported.
675 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
677 * giscanner/giscannermodule.c (symbol_get_ident): Prevent
678 a crash when symbol->indent is NULL.
680 * giscanner/sourcescanner.py (ctype_name): Add ctype_name,
681 a function to convert a CTYPE symbol to a string
683 2008-05-24 Johan Dahlin <jdahlin@async.com.br>
686 * giscanner/girwriter.py:
687 * giscanner/giscannermodule.c
688 (pygi_source_scanner_append_filename),
689 (pygi_source_scanner_parse_file):
690 * giscanner/glibtransformer.py:
691 * giscanner/sourcescanner.py:
692 Revert back to using temporary files to send in headers.
693 Allow Functions to be passed in as callbacks, add a couple
694 of try/excepts missing features.
695 We can now scan pango
697 2008-05-08 Johan Dahlin <johan@gnome.org>
699 * giscanner/glibtransformer.py:
700 * giscanner/transformer.py:
701 Move namespace stripping glibtransformer->transformer
703 2008-05-08 Johan Dahlin <johan@gnome.org>
706 * giscanner/girwriter.py:
707 * giscanner/glibtransformer.py:
708 * giscanner/transformer.py:
709 * tools/g-ir-scanner:
710 Introduce a namespace ast node
712 2008-05-05 Johan Dahlin <johan@gnome.org>
714 * giscanner/__init__.py:
715 * giscanner/sourcescanner.py:
716 * giscanner/transformer.py:
717 Move sourcescanner symbols to the sourcescanner module, instead
718 of in the global __init__ namespace.
720 2008-05-03 Johan Dahlin <johan@gnome.org>
722 * giscanner/glibtransformer.py:
723 * tools/g-ir-scanner:
724 Handle missing parameters better, allow - and + in .la dlname
727 2008-05-03 Johan Dahlin <johan@gnome.org>
729 * giscanner/__init__.py:
731 * giscanner/girwriter.py:
732 * giscanner/glibtransformer.py:
733 * giscanner/transformer.py:
734 Parse struct fields properly, improve debugging.
736 2008-04-29 Johan Dahlin <johan@gnome.org>
739 * giscanner/girwriter.py:
740 * giscanner/transformer.py:
741 * tests/parser/Foo-expected.gir:
743 Use transfer-ownership everywhere, to mark ownership/calle/caller etc.
745 2008-04-29 Johan Dahlin <jdahlin@async.com.br>
748 * docs/g-ir-scanner.1:
749 * metadata-annotations-proposal.txt:
750 * metadata-format.txt:
751 Add a basic, unfinshed man page for g-ir-scanner, move documents into .txt
753 2008-04-29 Johan Dahlin <jdahlin@async.com.br>
755 * giscanner/girwriter.py:
756 * giscanner/glibtransformer.py:
757 * giscanner/transformer.py:
758 * giscanner/xmlwriter.py:
759 * tests/parser/Foo-expected.gir:
760 * tests/parser/foo-object.h:
761 Write record/structs to gir file too. Add a couple of tests,
762 fix an off by one error in xmlwriter.py.
764 2008-04-28 Johan Dahlin <johan@gnome.org>
766 * giscanner/xmlwriter.py: Calculate the line length properly,
767 include the provided extra indentation in the calculation, really.
769 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
772 * giscanner/glibast.py:
773 * giscanner/glibtransformer.py:
774 * giscanner/transformer.py:
775 * tools/g-ir-scanner:
776 Add a --strip-prefix and sort out confusion between names and symbols
777 for functions and struct + derivaties.
778 Refactor bootstrap of g-ir-scanner, so we can set options on
779 Transformer() before parsing everything.
781 2008-04-28 Johan Dahlin <johan@gnome.org>
783 * giscanner/transformer.py (Transformer._traverse_one): Avoid recursion
784 when scanning girepository.h
786 * giscanner/sourcescanner.py (SourceScanner._preprocess): Define
787 a __GI_SCANNER__ when we run.
789 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
792 * giscanner/girwriter.py:
793 * giscanner/glibast.py:
794 * giscanner/glibtransformer.py:
795 * tests/parser/Foo-expected.gir:
796 * tests/parser/utility-expected.gir:
797 Rename most c:identifier to c:type. Add new ones to
798 class/interface/enum/boxed.
800 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
803 * giscanner/girwriter.py:
804 * giscanner/glibtransformer.py:
805 * tests/parser/Foo-expected.gidl:
806 * tests/parser/Makefile.am:
807 Move c:identifier from return-value to subchild type,
808 as per Jürgs suggestion
810 2008-04-28 Johan Dahlin <johan@gnome.org>
812 * giscanner/girwriter.py:
813 * tests/parser/Foo-expected.gir:
814 Write property.type as a child node.
816 2008-04-27 Johan Dahlin <johan@gnome.org>
821 * gidl/gobject-2.0.gidl:
823 * gir/gobject-2.0.gir:
824 * tests/parser/Makefile.am:
825 Replace the GObject gidl with a GObject gir.
827 2008-04-27 Johan Dahlin <johan@gnome.org>
829 * tools/Makefile.am (bin_SCRIPTS): g-ir-scanner is a script,
832 * giscanner/xmlwriter.py:
833 * tests/parser/Foo-expected.gir:
834 Include indentation in line length calculation
836 2008-04-27 Johan Dahlin <johan@gnome.org>
838 * giscanner/girparser.py:
839 Prettify NS parsing using elementtree.
841 2008-04-27 Johan Dahlin <johan@gnome.org>
844 * giscanner/Makefile.am:
845 * giscanner/girparser.py:
846 * giscanner/glibtransformer.py:
847 * tests/parser/Foo-expected.gidl:
848 * tests/parser/Foo-expected.gir:
849 * tests/parser/Makefile.am:
850 * tests/parser/utility-expected.gidl:
851 * tests/parser/utility-expected.gir:
852 * tools/g-ir-scanner:
853 Switch over to GIR as the default format. Add a simple GIDL
855 Update tests and fix simplify makefiles by depending
856 on GNU make extensions.
858 2008-04-27 Johan Dahlin <johan@gnome.org>
860 * giscanner/xmlwriter.py:
861 Wrap attributes for lines which are wider than 79 characters
863 * giscanner/scannerlexer.l:
864 Allow parenthesis in annotations
867 * giscanner/gidlwriter.py:
868 * giscanner/girwriter.py:
869 * giscanner/glibtransformer.py:
870 * giscanner/transformer.py:
871 Add initial sequence support, including annotation.
872 Refactor type handling a bit.
874 2008-04-27 Johan Dahlin <johan@gnome.org>
876 * tests/parser/Foo-expected.gidl:
877 * tests/parser/foo-object.h:
878 * tests/parser/foo.c (foo_object_class_init),
879 (foo_object_get_strings), (foo_object_get_objects):
880 Add two new functions to check sequence return values.
881 Also fixes a compilation warning.
883 2008-04-27 Johan Dahlin <johan@gnome.org>
885 * giscanner/giscannermodule.c (]): Cast the getter, avoids
886 a compilation warning.
888 * tools/Makefile.am (g_ir_scanner_SOURCES):
889 g-ir-scanner has no sources.
891 2008-04-25 Johan Dahlin <johan@gnome.org>
893 * giscanner/Makefile.am:
895 * giscanner/gidlparser.py:
896 * giscanner/gidlwriter.py:
897 * giscanner/girwriter.py:
898 * giscanner/glibast.py:
899 * giscanner/glibtransformer.py:
900 * giscanner/transformer.py:
901 Split out nodes to ast.py and glibast.py
903 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
905 * giscanner/Makefile.am:
906 * giscanner/gidlparser.py:
907 * giscanner/gidlwriter.py:
908 * giscanner/girwriter.py:
909 * giscanner/glibtransformer.py:
910 * giscanner/gobjecttreebuilder.py:
911 * giscanner/transformer.py:
912 * giscanner/treebuilder.py:
913 * tools/g-ir-scanner:
914 Rename treebuilder to transformer and
915 gobjectreebuilder to glibtransformer.
917 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
919 * giscanner/Makefile.am:
920 * giscanner/__init__.py:
921 * giscanner/cgobject.py:
922 * giscanner/gidlparser.py:
923 * giscanner/gidlwriter.py:
924 * giscanner/girwriter.py:
925 * giscanner/gobjecttreebuilder.py:
926 * giscanner/odict.py:
927 * giscanner/sourcescanner.py:
928 * giscanner/treebuilder.py:
929 * giscanner/xmlwriter.py:
931 * tools/g-ir-scanner:
932 Add LGPLv2 license header and install all python files
934 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
937 * giscanner/gidlwriter.py:
938 * giscanner/giscannermodule.c (pygi_source_directive_new),
939 (directive_get_options), (pygi_source_symbol_new),
940 (symbol_get_base_type), (pygi_source_type_new),
941 (type_get_base_type), (type_get_child_list),
942 (pygi_source_scanner_get_symbols),
943 (pygi_source_scanner_get_directives):
944 * giscanner/gobjecttreebuilder.py:
945 * giscanner/sourcescanner.py:
946 * giscanner/treebuilder.py:
947 * tests/parser/foo-object.h:
948 Add support for virtual methods.
949 Pair struct FooClass with struct Foo.
950 Clean up the SourceScanner bindings a bit.
951 Add a testcase for virtual methods.
953 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
955 * giscanner/cgobject.py:
956 * giscanner/gidlwriter.py:
957 * giscanner/gobjecttreebuilder.py:
958 Add support for signals
960 * tests/parser/foo.c (foo_object_class_init):
962 Add a signal and update the expected output.
964 2008-04-24 Johan Dahlin <jdahlin@async.com.br>
966 * giscanner/gidlwriter.py:
967 * giscanner/girwriter.py:
968 * giscanner/giscannermodule.c (directive_get_name),
969 (directive_get_value), (directive_get_options),
970 (symbol_get_directives), (symbol_set_directives),
971 (pygi_source_scanner_parse_file),
972 (pygi_source_scanner_lex_filename),
973 (pygi_source_scanner_get_directives), (init_giscanner):
974 * giscanner/sourcescanner.c (gi_source_scanner_get_directives):
975 * giscanner/sourcescanner.h:
976 * giscanner/sourcescanner.py:
977 * giscanner/treebuilder.py:
978 * tools/g-ir-scanner:
979 Add support for source/header annotations.
981 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
983 * giscanner/gidlwriter.py:
984 * giscanner/girwriter.py:
985 * giscanner/gobjecttreebuilder.py:
986 * giscanner/treebuilder.py:
987 Add support for Callbacks
989 2008-04-22 Havoc Pennington <hp@pobox.com>
991 * girepository/ginvoke.c (g_function_info_invoke): If a symbol is
992 not in metadata->module, look for it in the global module, in case
993 some other object or the app itself provides the symbol.
995 2008-04-22 Havoc Pennington <hp@pobox.com>
997 * girepository/gmetadata.c (_g_metadata_init): hack to avoid
998 dlopening a library that is already in the main app, by checking
999 whether one of the lib's symbols is already loaded.
1001 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
1003 * tests/parser/Foo-expected.gidl:
1004 * tests/parser/foo-object.h:
1007 2008-04-22 Havoc Pennington <hp@pobox.com>
1009 * girepository/ginfo.c (g_interface_info_find_method):
1010 Use interface_blob_size not object_blob_size to compute offset.
1012 2008-04-22 Havoc Pennington <hp@pobox.com>
1014 * girepository/gmetadata.c (_g_metadata_init): remove
1015 G_MODULE_BIND_LOCAL flag when loading libraries, since some libs
1016 (Glade and Clutter for example) rely on being loaded globally.
1018 2008-04-22 Havoc Pennington <hp@pobox.com>
1020 * girepository/ginfo.c (g_registered_type_info_get_g_type): new
1021 function to get the GType given a RegisteredTypeInfo
1023 2008-04-22 Johan Dahlin <johan@gnome.org>
1025 * COPYING: Add a LGPL license, to prevent automake to
1026 put in a copy of GPL here. Pointed out by Havoc.
1028 * girepository/ginfo.c (g_info_from_entry), (g_type_info_new),
1029 (g_type_info_is_pointer), (g_type_info_get_tag),
1030 (g_type_info_get_param_type), (g_type_info_get_interface),
1031 (g_type_info_get_array_length), (g_type_info_is_zero_terminated),
1032 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
1033 (g_error_domain_info_get_codes), (g_enum_info_get_value),
1034 (g_object_info_get_interface), (g_object_info_get_field),
1035 (g_interface_info_get_prerequisite),
1036 (g_signal_info_get_class_closure), (g_constant_info_get_value):
1037 * girepository/ginvoke.c (get_ffi_type):
1038 * girepository/girepository.h:
1039 * girepository/gmetadata.c (g_metadata_get_dir_entry),
1040 (g_metadata_check_sanity), (validate_header),
1041 (validate_array_type_blob), (validate_iface_type_blob),
1042 (validate_param_type_blob), (validate_error_type_blob),
1043 (validate_type_blob), (validate_constant_blob),
1044 (validate_struct_blob), (validate_enum_blob):
1045 * girepository/gmetadata.h:
1046 * tests/Makefile.am:
1047 * tests/invoke/Makefile.am:
1048 * tests/invoke/invoke.c (main):
1049 * tests/roundtrips.sh:
1050 * tools/Makefile.am:
1051 * tools/compiler.c (format_output), (write_out_metadata), (main):
1052 * tools/generate.c (write_type_name), (write_type_info),
1053 (write_constant_value), (write_enum_info), (load_metadata), (main):
1054 * tools/gidlcompilercontext.c:
1055 * tools/gidlcompilercontext.h:
1056 * tools/gidlcompilerentrynode.c:
1057 * tools/gidlcompilerentrynode.h:
1058 * tools/gidlcompilertypenode.c:
1059 * tools/gidlcompilertypenode.h:
1060 * tools/gidlmodule.c (g_idl_module_build_metadata):
1061 * tools/gidlmodule.h:
1062 * tools/gidlnode.c (init_stats), (dump_stats),
1063 (g_idl_node_get_size), (g_idl_node_get_full_size),
1064 (g_idl_node_cmp), (g_idl_node_can_have_member),
1065 (g_idl_node_add_member), (g_idl_node_param_direction_string),
1066 (parse_int_value), (parse_uint_value), (parse_float_value),
1067 (parse_boolean_value), (find_entry_node), (find_entry),
1068 (serialize_type), (g_idl_node_build_metadata), (write_string):
1070 * tools/gidlparser.c (parse_type_internal):
1071 * tools/quote-file.sh:
1072 Revert revisions 157,149-148,136-129 and 120.
1073 Move back to using g-idl-generate to generate the metadata and
1074 avoids dependency on a c compiler.
1076 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
1078 * giscanner/girwriter.py:
1079 * tools/g-ir-scanner:
1080 Add an initial GIR writer and a --format option to g-ir-scanner
1082 2008-04-21 Johan Dahlin <johan@gnome.org>
1084 * giscanner/cgobject.py: Use ctypes.util.find_library to locate
1085 gobject-2.0 and raise ImportError if not found.
1087 * giscanner/gidlparser.py:
1088 * giscanner/gidlwriter.py:
1089 * giscanner/gobjecttreebuilder.py:
1090 * tools/g-ir-scanner:
1091 Add a --include argument to include types from other idls.
1092 Add a minimalistic GIDL parser (just objects for now)
1093 Implement resolving of external type references and use it to
1094 resolve parent types, argument types and return types.
1096 2008-04-21 Johan Dahlin <johan@gnome.org>
1098 * giscanner/gidlwriter.py:
1099 * giscanner/gobjecttreebuilder.py:
1100 * giscanner/treebuilder.py:
1101 Add support for properties.
1102 Refactor Class/Interface support a bit, to share more code and
1103 always initialize their method attribute to an empty list.
1105 2008-04-21 Johan Dahlin <johan@gnome.org>
1107 * giscanner/cgobject.py:
1108 Add a workaround for a glib bug interface introspection bug
1109 (object_interface_list_properties, object_class_list_properties):
1110 Cast the return value to GParamSpec.
1112 * tests/parser/Foo-expected.gidl: Update
1113 * tests/parser/foo.c: Add a string property
1115 * giscanner/gobjecttreebuilder.py:
1116 After stripping namespaces, remove the original
1117 item to avoid duplication (GtkButton struct and Button object)
1119 2008-04-21 Johan Dahlin <johan@gnome.org>
1121 * giscanner/gobjecttreebuilder.py:
1122 * giscanner/treebuilder.py:
1123 Strip namespaces before objects, so we'll export
1124 GtkButton as Button in the gtk namespace
1126 2008-04-21 Johan Dahlin <johan@gnome.org>
1128 * giscanner/gidlwriter.py:
1129 * giscanner/gobjecttreebuilder.py:
1130 * giscanner/treebuilder.py:
1131 Add constructors for object/boxed types.
1133 2008-04-21 Johan Dahlin <johan@gnome.org>
1135 * giscanner/gidlwriter.py:
1136 * giscanner/gobjecttreebuilder.py:
1137 Add support for boxed types
1139 2008-04-21 Johan Dahlin <johan@gnome.org>
1141 * giscanner/giscannermodule.c: Mark structures as const,
1142 wrap SourceType.const_string.
1144 * tests/parser/foo-object.h: Add a couple of constants.
1146 * giscanner/gidlwriter.py:
1147 * giscanner/gobjecttreebuilder.py:
1148 * giscanner/treebuilder.py:
1149 Add basic support for interfaces
1151 * tools/g-ir-scanner:
1152 Add -o/--output for writing to a file
1154 2008-04-21 Havoc Pennington <hp@redhat.com>
1156 * TODO: add some C API wishlist items I could think of quickly
1158 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
1160 * giscanner/gidlwriter.py:
1161 * giscanner/xmlwriter.py:
1162 Add a simple api for writing tags which can be used
1163 with the new 'with statement' in python 2.5
1165 2008-04-21 Johan Dahlin <johan@gnome.org>
1167 * giscanner/gobjecttreebuilder.py:
1168 Strip namespace and object prefix from method names.
1170 2008-04-21 Johan Dahlin <johan@gnome.org>
1172 * tools/g-ir-scanner (main): Add --pkg option to pass in
1173 pkg-config modules to get cflags from.
1175 * giscanner/gidlwriter.py (GIDLWriter._write_method):
1176 Avoid duplication, reuse function writer for methods.
1178 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
1180 * giscanner/gidlwriter.py:
1181 * giscanner/gobjecttreebuilder.py:
1182 * giscanner/treebuilder.py:
1183 * tools/g-ir-scanner:
1184 Resolve libtool .la files.
1185 Strip name spaces for methods.
1186 Add function symbols
1188 2008-04-20 Johan Dahlin <jdahlin@async.com.br>
1190 * giscanner/cgobject.py:
1191 * giscanner/gidlwriter.py:
1192 * giscanner/gobjecttreebuilder.py:
1193 * giscanner/treebuilder.py:
1194 Add support for classes and methods
1196 2008-04-20 Johan Dahlin <johan@gnome.org>
1198 * giscanner/gidlwriter.py:
1199 * giscanner/gobjecttreebuilder.py:
1200 * giscanner/odict.py:
1201 Avoid conflicts, keep the output ordered similar to
1202 the order of the input.
1203 Add a simple ordered dictionary implemenation
1205 2008-04-19 Johan Dahlin <johan@gnome.org>
1207 * giscanner/cgobject.py:
1208 * giscanner/gidlwriter.py:
1209 * giscanner/gobjecttreebuilder.py:
1210 * tools/g-ir-scanner:
1211 Start introspecting get-type functions.
1212 Implement support for GLib/GFlags GTypes.
1213 Add a ctype based GObject binding.
1215 2008-04-18 Johan Dahlin <jdahlin@async.com.br>
1217 * giscanner/gidlwriter.py:
1218 * giscanner/xmlwriter.py:
1219 * tools/g-ir-scanner:
1220 Add a simplistic gidl writer, which can't do too much.
1222 2008-04-18 Johan Dahlin <johan@gnome.org>
1224 * giscanner/sourcescanner.py:
1225 * giscanner/treebuilder.py:
1226 * tools/g-ir-scanner:
1227 split tree building and source scanning interface to separate files.
1229 2008-04-18 Johan Dahlin <johan@gnome.org>
1231 * tools/g-ir-scanner (Parameter.__init__): Start constructing
1233 - Add support for struct/parameter/return, start parsing of ctypes
1235 * giscanner/giscannermodule.c: wrap GISourceType.child_list and
1238 2008-03-31 Johan Dahlin <johan@gnome.org>
1240 * tools/g-ir-scanner:
1241 Start to build abstract syntax node of scanned sources.
1242 Add support for cpp options.
1244 2008-03-27 Johan Dahlin <johan@gnome.org>
1246 * giscanner/giscannermodule.c:
1247 * giscanner/scannerlexer.l:
1248 * giscanner/sourcescanner.c:
1249 * tools/g-ir-scanner:
1251 Add simple pre-processor using subprocess and a PIPE.
1252 Change the parse_file apis to accept a file descriptor.
1254 2008-03-25 Johan Dahlin <johan@gnome.org>
1256 * giscanner/__init__.py:
1257 * tools/g-ir-scanner:
1258 Fix a typo and add an example python test program.
1260 2008-03-25 Johan Dahlin <johan@gnome.org>
1262 * giscanner/__init__.py:
1263 * giscanner/giscannermodule.c:
1264 * giscanner/sourcescanner.c:
1265 * giscanner/sourcescanner.h:
1266 Add constants and wrap a few more SymbolType fields
1268 2008-03-25 Johan Dahlin <johan@gnome.org>
1272 * giscanner/__init__.py:
1273 * giscanner/giscannermodule.c:
1274 * giscanner/Makefile.am:
1276 Add initial python bindings for the scanner and
1277 depend on python 2.5.
1279 2008-03-25 Johan Dahlin <johan@gnome.org>
1283 * giscanner/Makefile.am:
1284 * giscanner/sourcescanner.c:
1285 * giscanner/sourcescanner.h:
1286 * tools/Makefile.am:
1287 * tools/grealpath.h:
1288 * tools/sourcescanner.c:
1289 * tools/sourcescanner.h:
1291 Move the scanner to a separate library.
1293 2008-03-23 Johan Dahlin <johan@gnome.org>
1295 * tools/Makefile.am:
1298 * tools/scannerlexer.l:
1299 * tools/scannerparser.y:
1300 * tools/sourcescanner.c:
1301 * tools/sourcescanner.h:
1302 Split out the source scanner from the generator.
1303 Rename the symbols used in the scanner to use the gi_ prefix.
1304 This should make it possible to use the raw C parser from
1307 2008-03-23 Johan Dahlin <johan@gnome.org>
1309 * tests/parser/Makefile.am (utility.gidl):
1310 * tests/parser/utility-expected.gidl:
1311 Pass in the gobject.gidl since we're defining a GObject.
1313 2008-03-12 Johan Dahlin <johan@gnome.org>
1315 * relaxng/relaxng.rng:
1316 Add a releaxng in relaxng we can use to validate the relaxngs
1319 2008-03-12 Jürg Billeter <j@bitron.ch>
1321 * tools/scanner.c: (g_igenerator_new):
1322 * tools/scannerparser.y:
1323 Fix compiler warnings.
1325 2008-03-12 Jürg Billeter <j@bitron.ch>
1329 * tools/scannerparser.y:
1330 Start fixing memory management in g-idl-scanner.
1332 2008-03-12 Rob Taylor <rob.taylor@codethink.co.uk>
1334 * tools/gidlcompilercontext.c: (write_compiled):
1335 Fix critical warning when no shlib passed to g-idl-compiler.
1337 2008-03-12 Johan Dahlin <johan@gnome.org>
1339 * tests/parser/utility-expected.gidl:
1340 * tests/parser/utility.h:
1341 Add a get_type-function, so the scanner actually
1342 parses it as an object.
1344 2008-03-12 Johan Dahlin <johan@gnome.org>
1346 * tools/gidlwriter.c (function_generate): Add missing trailing quote.
1349 * tests/parser/Foo-expected.gidl:
1350 * tests/parser/Makefile.am:
1351 * tests/parser/foo-object.h:
1352 * tests/parser/foo.c:
1353 * tests/parser/utility-expected.gidl:
1354 * tests/parser/utility.c:
1355 * tests/parser/utility.h:
1357 Add a new gidl test. 'utility.gidl', which is used to be able
1358 to test external type references. Add a reference to UtilityObject*
1361 2008-03-11 Johan Dahlin <johan@gnome.org>
1365 Remove most global variables
1367 2008-03-11 Philip Van Hoof <me@pvanhoof.be>
1369 * tools/scannerlexer.l:
1371 * tests/parser/Foo-expected.gidl:
1372 * tests/parser/foo.c:
1373 * tests/parser/Makefile.am:
1374 * tests/parser/foo-object.h:
1376 Added a few extra tests. Which resulted in finding a few
1377 bugs. Which resulted in me fixing those bugs
1379 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
1381 * tools/gidlcompilercontext.c: (g_idl_compiler_write_dir_entry),
1382 (g_idl_compiler_write_xref_entry), (g_idl_compiler_add_xref):
1383 Add some comments for strings into generated output for
1386 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
1388 * tools/gidlcompilercontext.c: (write_compiled):
1389 Write out the shlibs variable before writing out the strings
1390 length. Fixes compiler warning when using '-l' flag with
1393 2008-03-11 Johan Dahlin <johan@gnome.org>
1395 * tests/parser/Foo-expected.gidl:
1396 * tests/parser/foo-object.h:
1399 * tools/scannerlexer.l:
1400 Add support for parsing return arguments. Add support for
1401 caller-owns return types.
1402 Patch by Philip Van Hoof.
1404 * tools/scannerparser.y:
1405 Remove parsing of the @deprecated syntax used in headers.
1406 We will support gtk-doc deprecation in the future instead.
1408 2008-03-11 Johan Dahlin <johan@gnome.org>
1410 * tools/compiler.c (main): Coding style fixes
1412 2008-03-10 Johan Dahlin <johan@gnome.org>
1415 Add GCOV_LIBS to GILIBS
1417 2008-03-10 Johan Dahlin <johan@gnome.org>
1419 * tests/parser/Foo-expected.gidl:
1420 * tests/parser/foo.c:
1421 Rename null-ok to direction=out
1423 2008-03-10 Philip Van Hoof <me@pvanhoof.be>
1425 reviewed and extensively tested by Johan
1427 * tests/parser/Foo-expected.gidl:
1428 * tests/parser/foo-object.h:
1429 * tests/parser/foo.c:
1432 * tools/gidlwriter.c:
1435 * tools/scannerlexer.l:
1436 * tools/scannerparser.y:
1438 Add support for scanning for gtk-doc comments inside
1439 C source files. Add tests
1441 2008-03-10 Johan Dahlin <johan@gnome.org>
1443 * tests/parser/Makefile.am:
1444 * tests/parser/foo.c:
1447 * tools/scannerparser.y:
1448 Add an api to lex filenames.
1449 Lex all source .c files passed in on the command line.
1450 Scan sources in a test and a couple of private structures
1451 which should not be included in the generated gidl
1453 2008-03-10 Johan Dahlin <johan@gnome.org>
1455 * tests/invoke/Makefile.am: Make the generated metadata
1456 depend on the g-idl-compiler
1458 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1460 * tools/gidlmodule.c
1461 * tools/gidlmodule.h
1464 Remove the old g-idl-compiler code.
1467 2008-02-22 Mark Doffman <mark.doffman@codethink.co.uk>
1469 * tools/quote-file.sh
1472 Move to using the 'C' struct compiler code.
1474 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1476 * girepository/ginfo.c
1478 Change the way that external references with no namespace
1479 are dealt with. External references with no namespace
1480 are placed into the XML as-if they are a local reference.
1481 This is temporary, but helps with roundtrip tests.
1483 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1485 * girepository/ginfo.c
1486 Add the ability to get the value of a constant of
1487 type TYPE_TAG_SYMBOL. In the case of a symbol the value
1488 is provided as a string.
1490 This would deal properly with:
1491 typedef char* random;
1492 const random = "A string";
1494 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1496 * girepository/ginfo.c
1497 * girepository/girepository.h
1499 Add a function to check if an enum is registered or not.
1500 Previously anything testing this relied on the g-type
1501 string offset having a value of 0.
1503 * girepository/gmetadata.c
1504 * girepository/gmetadata.h
1506 Remove unneccesary or erroneous checks. There were two
1507 metadata validation checks which made sure that the blob
1508 sizes were the same as some magic numbers compiled into the code.
1509 This is wrong as it breaks any forwards compatibility that may
1512 Checks were also present that made sure that unregistered type
1513 blobs had a value of 0 in the g-type offset field. This is
1514 unneccessary. If a type blob is unregistered then any value
1515 in its g-type field is simply invalid.
1517 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1519 * girepository/ginfo.c
1520 * girepository/gmetadata.c
1521 * girepository/gmetadata.h
1523 Change the metadata format to have a standard header
1524 for all the type blobs. Merge the SimpleTypeBlob
1525 and InterfaceTypeBlob into a union. A union of these
1526 two blobs existed previously but was not explicit
1527 in the metadata format.
1529 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1531 * tools/gidlcompilercontext.c
1532 * tools/gidlcompilercontext.h
1533 * tools/gidlcompilerentrynode.c
1534 * tools/gidlcompilerentrynode.h
1535 * tools/gidlcompilertypenode.c
1536 * tools/gidlcompilertypenode.h
1538 Add code to compile a tree of GIdlNodes to
1539 a 'C' struct representing the metadata.
1540 This is to aid cross-compiling. Previously
1541 the g-idl-compiler created a binary blob with
1542 data written in the byte order and alignment
1543 of the tool rather than the intended target.
1545 Cleaned up and improved by Johan and Robert :-)
1547 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1549 * girepository/ginvoke.c
1550 * girepository/girepository.h
1551 * girepository/gmetadata.c
1552 * girepository/gmetadata.h
1554 * tools/gidlparser.c
1555 Modify TYPE_TAG_INTERFACE to TYPE_TAG_SYMBOL
1556 to avoid confusion with the interface blob.
1559 * tools/gidlparser.c
1560 Remove magic numbers and replace with type-tag
1561 enumeration symbols.
1563 * girepository/gmetadata.c
1564 Add validate declaration.
1566 2008-03-10 Jürg Billeter <j@bitron.ch>
1568 * tools/gidlparser.c: (parse_type_internal):
1569 * tools/scannerlexer.l:
1570 * tools/scannerparser.y:
1571 Support C99 _Bool type in scanner.
1573 2008-03-10 Jürg Billeter <j@bitron.ch>
1575 * tests/parser/Foo-expected.gidl:
1576 * tests/parser/foo-object.h:
1577 * tests/parser/foo.c: (foo_enum_method):
1578 * tools/scanner.c: (g_igenerator_process_function_symbol):
1579 Don't skip functions that are defined in the namespace of a type
1580 that doesn't support methods, as for example enums.
1582 2008-03-10 Johan Dahlin <johan@gnome.org>
1584 * gidl.dtd: Remove, we're using relaxng for now
1586 * tests/parser/Foo-expected.gidl:
1587 * tests/parser/foo-object.h:
1588 * tests/parser/foo.c:
1589 Rename the enum/flags get_type functions to include the whole type.
1591 2008-03-08 Marc-Andre Lureau <marcandre.lureau@gmail.com>
1593 * tools/gidlwriter.c (enum_generate): added "type-name",
1594 "get-type" and "deprecated" missing arguments.
1595 * tests/parser/Foo-expected.gidl:
1596 * tests/parser/foo-object.h: test enum type, and no type.
1598 2008-03-06 Johan Dahlin <jdahlin@async.com.br>
1601 Consistent checks, add missing 'test'
1603 2008-03-05 Havoc Pennington <hp@redhat.com>
1605 * configure.ac: Take advantage of a libffi.pc if one exists, as it
1606 does on Fedora 8. Make libffi a hard requirement, since it was in
1607 practice anyway (was not really conditional in the code or
1608 makefile, only in configure).
1610 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1612 reviewed by: Rob Taylor <rob.taylor@codethink.co.uk>
1613 reviewed by: Johan Dahlin <johan@gnome.org>
1615 * tests/Makefile.am:
1616 * tests/roundtrips.sh:
1617 Modify the roundtrips test so that they do not use the
1618 --raw option of the gidl compiler but instead compile a
1619 shared library to use with g_module.
1621 * tests/invoke/Makefile.am:
1622 * tests/invoke/invoke.c:
1623 Modify the invoke tests to build a shared library rather
1624 than use the --raw option.
1626 * tests/invoke/invoke-namespace-find.sh: Removed:
1627 Noone knows why this was here, so removed.
1629 2008-02-19 Rob Taylor <rob.taylor@codethink.co.uk>
1631 * tools/scanner.c: (g_igenerator_process_function_symbol):
1632 Move g_idl_node_can_have_member test later, as it broke spotting
1633 get_type's for nodes that can't have members.
1635 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1638 * tools/gidlnode.c: (g_idl_node_can_have_member):
1639 Add g_idl_node_can_have_member.
1641 * tools/scanner.c: (g_igenerator_process_function_symbol):
1642 Use g_idl_node_can_have_member to test if we should add a function
1643 as a member of the type node.
1645 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1647 * gidl/GLib.gidl: Renamed to gidl/gobject-2.0.gidl:
1649 * tests/parser/Makefile.am:
1650 Rename GLib.gidl to gobject-2.0.gidl and install in /usr/share/gidl.
1652 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1654 * tools/scanner.c: (main):
1655 Ignore -pthread when passed to g-idl-scanner.
1657 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1659 * tools/grealpath.h: Added:
1660 * tools/scanner.c: (main):
1661 * tools/scannerlexer.l:
1662 * tools/Makefile.am:
1663 Always use absolute paths with symbolic links resolved when
1664 comparing filenames.
1666 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1668 * gobject-introspection.pc.in:
1669 Provide variables for g-idl-parser, scanner and compiler in the
1672 2008-02-13 Rob Taylor <rob.taylor@codethink.co.uk>
1675 * girepository/Makefile.am:
1676 * tools/Makefile.am:
1677 Rename GCOV_SOURCES to GCOVSOURCES to top automake complaining.
1679 2008-02-10 Johan Dahlin <johan@gnome.org>
1681 * tests/parser/Foo-expected.gidl:
1682 * tests/parser/foo-object.h:
1683 * tests/parser/foo.c: (foo_boxed_copy), (foo_boxed_free),
1684 (foo_boxed_get_type), (foo_boxed_new), (foo_boxed_method):
1687 2008-02-10 Johan Dahlin <johan@gnome.org>
1689 * tests/parser/Foo-expected.gidl:
1690 * tests/parser/foo-object.h:
1691 * tests/parser/foo.c: (foo_enum_get_type), (foo_flags_get_type):
1692 Add enum and flags test.
1694 2008-02-10 Johan Dahlin <johan@gnome.org>
1698 * girepository/Makefile.am:
1699 Make 'make distcheck' work again.
1701 2008-02-10 Johan Dahlin <johan@gnome.org>
1703 * m4/Makefile.am (EXTRA_DIST): its called as-compiler-flag.m4,
1706 * tests/parser/Makefile.am: Only create Foo.gidl when running make
1707 check, eg exclude it from BUILT_SOURCES.
1709 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
1714 * girepository/Makefile.am:
1715 * m4/Makefile.am: Added:
1716 * m4/as-compiler-flag.m4: Added:
1717 * m4/gcov.m4: Added:
1718 * tools/Makefile.am:
1719 Add ability to generate a coverage report.
1720 Adds configure option --enable-gcov and make rule 'check-coverage'.
1722 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
1726 * gidl/Makefile.am: Added:
1727 * girepository/Makefile.am: Added:
1728 * src/Makefile.am: Renamed to tools/Makefile.am:
1729 * src/compiler.c: Renamed to tools/compiler.c:
1730 * src/g-idl-offsets.pl: Renamed to tools/g-idl-offsets.pl:
1731 * src/generate.c: Renamed to tools/generate.c:
1732 * src/gidlmodule.c: Renamed to tools/gidlmodule.c:
1733 * src/gidlmodule.h: Renamed to tools/gidlmodule.h:
1734 * src/gidlnode.c: Renamed to tools/gidlnode.c:
1735 * src/gidlnode.h: Renamed to tools/gidlnode.h:
1736 * src/gidlparser.c: Renamed to tools/gidlparser.c:
1737 * src/gidlparser.h: Renamed to tools/gidlparser.h:
1738 * src/gidlwriter.c: Renamed to tools/gidlwriter.c:
1739 * src/gidlwriter.h: Renamed to tools/gidlwriter.h:
1740 * src/ginfo.c: Renamed to girepository/ginfo.c:
1741 * src/ginvoke.c: Renamed to girepository/ginvoke.c:
1742 * src/girepository.c: Renamed to girepository/girepository.c:
1743 * src/girepository.h: Renamed to girepository/girepository.h:
1744 * src/gmetadata.c: Renamed to girepository/gmetadata.c:
1745 * src/gmetadata.h: Renamed to girepository/gmetadata.h:
1746 * src/scanner.c: Renamed to tools/scanner.c:
1747 * src/scanner.h: Renamed to tools/scanner.h:
1748 * src/scannerlexer.l: Renamed to tools/scannerlexer.l:
1749 * src/scannerparser.y: Renamed to tools/scannerparser.y:
1750 * tests/invoke/Makefile.am:
1751 Split src/ into girepository/ and tools/
1755 * girepository/Makefile.am:
1756 * tests/Makefile.am:
1757 * tests/invoke/Makefile.am:
1758 * tests/parser/Makefile.am:
1759 * tests/roundtrips.sh:
1760 * tools/Makefile.am:
1761 Make distcheck work.
1763 2008-02-04 Rob Taylor <rob.taylor@codethink.co.uk>
1765 * tests/invoke/invoke.c: (main):
1766 * tests/invoke/testfns.c: (test6), (test7):
1767 * tests/invoke/testfns.xml:
1768 Add tests for invokation with a GList argument.
1769 Also tests caller-owns return values.
1771 2008-02-04 Rob Taylor <robtaylor@floopily.org>
1774 Add some documentation for GICallableInfo
1776 2008-02-01 Mark Doffman <mark.doffman@codethink.co.uk>
1779 Correct syntax errors in the DTD file.
1781 * relaxng/c-types.xml:
1782 * relaxng/g-types.xml:
1784 Add a RelaxNG specification for the GObject Introspection XML data.
1785 The Specification has validated all of the test files.
1787 2008-01-25 Rob Taylor <robtaylor@floopily.org>
1789 * tests/roundtrips.sh:
1790 * tests/struct.test:
1791 Add roundtrip tests for structs.
1793 2008-01-11 Johan Dahlin <johan@gnome.org>
1795 * src/scanner.c (g_igenerator_process_function_symbol):
1796 Refactor out g_idle_node_add_member.
1797 (create_node_from_gtype, create_node_from_ctype):
1798 Use case instead of if...else
1799 (get_type_from_type_id):
1800 Rename to create_node_from_gtype
1801 (get_type_from_ctype):
1802 Rename to create_node_from_ctype
1804 Rename ginode -> node, gitype -> type, gifunc -> func.
1806 * src/gidlnode.c (g_idl_node_add_member, g_idl_node_cmp):
1807 Two new functions, refactor out of scanner.c
1809 * src/scanner.c: (g_igenerator_process_function_symbol):
1810 * src/scannerlexer.l:
1811 Do not save the content of the deprecated variable, only
1814 2008-01-11 Johan Dahlin <johan@gnome.org>
1816 * tests/parser/foo-object.h: Add a couple of comment parser tests.
1818 2008-01-11 Jürg Billeter <j@bitron.ch>
1820 * src/scannerlexer.l:
1821 Fix GTK-Doc parsing.
1823 2008-01-11 Jürg Billeter <j@bitron.ch>
1825 * src/scannerlexer.l:
1826 Fix GTK-Doc parsing.
1828 2008-01-11 Jürg Billeter <j@bitron.ch>
1830 * src/scanner.c: (lookup_symbol):
1831 Return unresolved name if we find unknown symbol.
1833 2008-01-11 Jürg Billeter <j@bitron.ch>
1835 * src/scanner.c: (g_igenerator_generate):
1836 Initialize GObject to fix scanning interface properties.
1838 * tests/parser/Foo-expected.gidl:
1839 * tests/parser/foo-object.h:
1840 * tests/parser/foo.c: (foo_interface_get_type):
1841 Test interfaces with GObject prerequisite.
1843 * tests/parser/Makefile.am:
1844 Set G_DEBUG=fatal_warnings to abort test on warnings and criticals.
1846 2007-12-27 Johan Dahlin <johan@gnome.org>
1848 * src/scannerlexer.l:
1849 Parse gtk-doc comments.
1851 * src/gidlwriter.c: (function_generate):
1852 Reorganize, avoid duplication and add support for
1853 writing deprecated functions.
1855 * src/scannerparser.y:
1857 Add new structure CDirective and functions to create/free them.
1859 * src/scanner.c: (g_igenerator_process_function_symbol),
1860 (g_igenerator_process_unregistered_struct_typedef),
1861 (g_igenerator_process_struct_typedef),
1862 (g_igenerator_process_union_typedef),
1863 (g_igenerator_process_enum_typedef),
1864 (g_igenerator_process_function_typedef), (g_igenerator_add_symbol),
1865 (g_igenerator_start_preprocessor):
1866 Parse @deprecated directive for functions.
1867 Remove some more C99isms.
1868 Send in -C to cpp to avoid stripping comments.
1870 * tests/parser/foo-object.h:
1871 * tests/parser/Foo-expected.gidl:
1872 Add deprecated directive
1874 2007-12-27 Johan Dahlin <johan@gnome.org>
1876 * src/scannerlexer.l (intsuffix): Add emacs mode line and
1877 escape ' and " so it looks more like C.
1880 Unlink temporary file used.
1882 2007-12-27 Johan Dahlin <johan@gnome.org>
1884 * src/scanner.c: (g_igenerator_new), (g_igenerator_free),
1885 (g_igenerator_start_preprocessor), (main):
1887 * src/scannerparser.y:
1888 Plug a couple of simple memory leaks.
1890 2007-12-27 Johan Dahlin <johan@gnome.org>
1892 * src/scanner.c: (g_igenerator_parse_macros),
1893 (g_igenerator_start_preprocessor), (g_igenerator_set_verbose),
1896 * src/scannerparser.y:
1897 * tests/parser/Makefile.am:
1899 Improve error reporting, return when the preprocessor fails.
1900 Add a verbose parameter, to aid debugging.
1901 Revert to using a temporary file to communicate between the
1902 preprocessor and the parser, because we need to wait for
1903 the exit code from the pre-processor before starting to parse.
1905 2007-12-16 Johan Dahlin <jdahlin@async.com.br>
1907 * src/Makefile.am: Rename clexer.l to scannerlexer.l and
1908 cparser.y to scannerparser.y
1910 2007-12-11 Johan Dahlin <johan@gnome.org>
1914 * src/scanner.c: (g_igenerator_new):
1916 Get rid of the global the_generator variable.
1918 2007-12-10 Johan Dahlin <johan@gnome.org>
1920 * src/scanner.c (main): Add an output option,
1921 add checks for required parameters
1924 set BUILD_SOURCES and CLEANFILES properly
1926 * src/gidlwriter.c: (g_writer_write_inline), (g_writer_write),
1927 (g_writer_write_indent), (g_writer_write_unindent),
1928 (field_generate), (value_generate), (constant_generate),
1929 (property_generate), (function_generate), (vfunc_generate),
1930 (signal_generate), (interface_generate), (struct_generate),
1931 (union_generate), (boxed_generate), (enum_generate),
1932 (node_generate), (g_writer_write_module), (g_idl_writer_save_file):
1934 * src/scanner.c: (g_igenerator_generate):
1936 * src/scannerwriter.c:
1938 Refactor scannerwriter to only be tied to a GIdlModule and move
1939 it (again!) to gidlwriter.c. Change the writer function to take
1942 2007-12-10 Johan Dahlin <johan@gnome.org>
1945 * src/scanner.c: (g_igenerator_generate):
1947 * src/scannerwriter.c: (g_igenerator_write_inline),
1948 (g_igenerator_write), (g_igenerator_write_indent),
1949 (g_igenerator_write_unindent), (field_generate), (value_generate),
1950 (constant_generate), (property_generate), (function_generate),
1951 (vfunc_generate), (signal_generate), (interface_generate),
1952 (struct_generate), (union_generate), (boxed_generate),
1953 (enum_generate), (node_generate), (module_generate),
1954 (g_scanner_write_file):
1956 Move the scanner gidl writing to a separate source file.
1958 2007-12-10 Johan Dahlin <johan@gnome.org>
1963 Move over all CType construction functions.
1965 * tests/parser/Makefile.am:
1966 Be verbose when printing parsing tests results.
1968 2007-12-10 Johan Dahlin <johan@gnome.org>
1970 * src/scanner.c (g_igenerator_start_preprocessor): Refactor
1971 preprocessor handling to here. Start cpp insteado of cc -E,
1972 always include -U__GNUC__, since it's specific to the preprocessor
1975 * tests/parser/Makefile.am (check-local): Silent diff and skip
1976 -U__GNUC__ which is always defined now
1978 2007-12-10 Johan Dahlin,,, <jdahlin@plasttroll>
1980 reviewed by: <delete if not using a buddy>
1982 * src/scanner.c: (g_igenerator_start_preprocessor), (main):
1983 * tests/parser/Makefile.am:
1985 2007-12-09 Johan Dahlin <johan@gnome.org>
1988 Use GOption for command line options.
1989 (g_igenerator_new, main): Simplify constructor and they way
1990 parameters are passed into it.
1996 * src/gen-introspect.c:
1997 * src/gen-introspect.h:
1999 Rename gen-introspect.[ch] to scanner.[ch]
2001 2007-12-09 Johan Dahlin <johan@gnome.org>
2005 * src/Makefile.am: Rename gen-introspect to g-idl-scanner,
2006 don't make the repository library and the other utilites link against
2009 * src/gen-introspect.c: (g_igenerator_create_object),
2010 (g_igenerator_create_interface), (g_igenerator_create_boxed),
2011 (g_igenerator_create_enum), (g_igenerator_create_flags),
2012 (g_igenerator_process_module_symbol),
2013 (g_igenerator_process_module), (g_igenerator_generate), (main):
2014 * src/gen-introspect.h:
2015 Refactor g_igenerator_process_types into smaller pieces.
2017 * tests/parser/Makefile.am:
2018 Depend on the gen-introspect binary
2020 2007-12-09 Johan Dahlin <johan@gnome.org>
2022 * src/gen-introspect.c (g_igenerator_process_types):
2023 Break into smaller pieces, one for each generated node type.
2025 2007-12-08 Johan Dahlin <johan@gnome.org>
2027 * src/gen-introspect.c: (g_igenerator_process_types),
2028 (g_igenerator_add_module):
2029 * tests/parser/Foo-expected.gidl:
2030 * tests/parser/foo-object.h:
2031 * tests/parser/foo.c: (foo_subobject_class_init),
2032 (foo_subobject_init):
2034 Add a subobject test and make sure to register defined classes
2035 in the lookup symbol hash table.
2037 2007-12-08 Johan Dahlin <johan@gnome.org>
2041 * src/gen-introspect.c: (g_igenerator_new), (lookup_symbol),
2042 (g_igenerator_process_types), (g_igenerator_add_module),
2043 (g_igenerator_add_include_idl), (main):
2044 * src/gen-introspect.h:
2045 * tests/parser/Makefile.am:
2046 * tests/parser/Foo-expected.gidl:
2048 Change the gen-introspect to generate namespaced module names,
2049 such as GLib.Object instead of GObject.
2050 Add a GLib.gidl which introduces GLib.Object and GLib.InitiallyUnowned,
2051 add a --include-idl parameter to gen-introspect,
2052 and update the parser test.
2054 2007-12-08 Johan Dahlin <johan@gnome.org>
2056 * src/gen-introspect.c:
2057 Move main to the end of the file and attempt to make it valid
2060 * tests/parser/Makefile.am (BUILT_SOURCES): Remove .repo here,
2061 we're not quite ready to generate metadata yet.
2066 Add a simple gen-introspect parser test
2068 2007-12-06 Gustavo J. A. M. Carneiro <gjc@gnome.org>
2070 reviewed by: Johan Dahlin <johan@gnome.org>
2073 * gobject-introspection.pc.in:
2075 * src/compiler.c: (format_output), (write_out_metadata), (main):
2076 * src/gen-introspect.c: (main):
2077 * src/gen-introspect.h:
2078 * src/generate.c: (write_callable_info), (write_repository),
2079 (load_metadata), (main):
2080 * src/gidlmodule.c: (g_idl_module_new),
2081 (g_idl_module_build_metadata):
2083 * src/gidlparser.c: (start_element_handler):
2084 * src/ginfo.c: (g_info_new), (g_info_from_entry),
2085 (g_base_info_get_name), (g_base_info_get_namespace),
2086 (g_base_info_is_deprecated), (g_base_info_get_annotation),
2087 (g_base_info_get_metadata), (g_function_info_get_symbol),
2088 (g_function_info_get_flags), (g_function_info_get_property),
2089 (g_function_info_get_vfunc), (signature_offset), (g_type_info_new),
2090 (g_callable_info_may_return_null),
2091 (g_callable_info_get_caller_owns), (g_callable_info_get_n_args),
2092 (g_callable_info_get_arg), (g_arg_info_get_direction),
2093 (g_arg_info_is_return_value), (g_arg_info_is_dipper),
2094 (g_arg_info_is_optional), (g_arg_info_may_be_null),
2095 (g_arg_info_get_ownership_transfer), (g_type_info_is_pointer),
2096 (g_type_info_get_tag), (g_type_info_get_param_type),
2097 (g_type_info_get_interface), (g_type_info_get_array_length),
2098 (g_type_info_is_zero_terminated),
2099 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
2100 (g_error_domain_info_get_quark), (g_error_domain_info_get_codes),
2101 (g_value_info_get_value), (g_field_info_get_flags),
2102 (g_field_info_get_size), (g_field_info_get_offset),
2103 (g_registered_type_info_get_type_name),
2104 (g_registered_type_info_get_type_init),
2105 (g_struct_info_get_n_fields), (g_struct_info_get_field),
2106 (g_struct_info_get_n_methods), (g_struct_info_get_method),
2107 (find_method), (g_struct_info_find_method),
2108 (g_enum_info_get_n_values), (g_enum_info_get_value),
2109 (g_object_info_get_parent), (g_object_info_get_type_name),
2110 (g_object_info_get_type_init), (g_object_info_get_n_interfaces),
2111 (g_object_info_get_interface), (g_object_info_get_n_fields),
2112 (g_object_info_get_field), (g_object_info_get_n_properties),
2113 (g_object_info_get_property), (g_object_info_get_n_methods),
2114 (g_object_info_get_method), (g_object_info_find_method),
2115 (g_object_info_get_n_signals), (g_object_info_get_signal),
2116 (g_object_info_get_n_vfuncs), (g_object_info_get_vfunc),
2117 (g_object_info_get_n_constants), (g_object_info_get_constant),
2118 (g_interface_info_get_n_prerequisites),
2119 (g_interface_info_get_prerequisite),
2120 (g_interface_info_get_n_properties),
2121 (g_interface_info_get_property), (g_interface_info_get_n_methods),
2122 (g_interface_info_get_method), (g_interface_info_find_method),
2123 (g_interface_info_get_n_signals), (g_interface_info_get_signal),
2124 (g_interface_info_get_n_vfuncs), (g_interface_info_get_vfunc),
2125 (g_interface_info_get_n_constants),
2126 (g_interface_info_get_constant), (g_property_info_get_flags),
2127 (g_signal_info_get_flags), (g_signal_info_get_class_closure),
2128 (g_signal_info_true_stops_emit), (g_vfunc_info_get_flags),
2129 (g_vfunc_info_get_offset), (g_vfunc_info_get_signal),
2130 (g_constant_info_get_value), (g_union_info_get_n_fields),
2131 (g_union_info_get_field), (g_union_info_get_n_methods),
2132 (g_union_info_get_method), (g_union_info_is_discriminated),
2133 (g_union_info_get_discriminator_offset),
2134 (g_union_info_get_discriminator):
2135 * src/ginvoke.c: (g_function_info_invoke):
2136 * src/girepository.c: (g_irepository_register),
2137 (g_irepository_unregister), (g_irepository_get_default),
2138 (count_interfaces), (g_irepository_get_n_infos), (find_interface),
2139 (g_irepository_get_info), (g_irepository_find_by_name),
2140 (g_irepository_get_shared_library),
2141 (g_irepository_build_search_path), (g_irepository_register_file),
2142 (g_irepository_error_quark):
2143 * src/girepository.h:
2144 * src/gmetadata.c: (g_metadata_get_dir_entry),
2145 (g_metadata_check_sanity), (validate_header),
2146 (validate_array_type_blob), (validate_iface_type_blob),
2147 (validate_param_type_blob), (validate_error_type_blob),
2148 (validate_type_blob), (validate_arg_blob),
2149 (validate_signature_blob), (validate_function_blob),
2150 (validate_callback_blob), (validate_constant_blob),
2151 (validate_value_blob), (validate_field_blob),
2152 (validate_property_blob), (validate_signal_blob),
2153 (validate_vfunc_blob), (validate_struct_blob),
2154 (validate_enum_blob), (validate_object_blob),
2155 (validate_interface_blob), (validate_errordomain_blob),
2156 (validate_union_blob), (validate_blob), (validate_directory),
2157 (validate_annotations), (g_metadata_validate), (_g_metadata_init),
2158 (g_metadata_new_from_memory), (g_metadata_new_from_const_memory),
2159 (g_metadata_new_from_mapped_file), (g_metadata_free),
2160 (g_metadata_set_module), (g_metadata_get_namespace):
2162 * tests/Makefile.am:
2163 * tests/invoke/Makefile.am:
2164 * tests/invoke/invoke-namespace-find.sh:
2165 * tests/invoke/invoke.c: (main):
2167 Add a namespace/shared library mapping. fixes #313268.
2169 2007-12-03 Johan Dahlin <johan@gnome.org>
2171 * src/gidlparser.c (parse_type_internal): Disable char/gchar and
2174 2007-11-30 Jürg Billeter <j@bitron.ch>
2180 * src/gen-introspect.c: (g_idl_node_cmp), (g_igenerator_new),
2181 (g_igenerator_write_inline), (g_igenerator_write),
2182 (g_igenerator_write_indent), (g_igenerator_write_unindent),
2183 (field_generate), (value_generate), (constant_generate),
2184 (property_generate), (function_generate), (vfunc_generate),
2185 (signal_generate), (interface_generate), (struct_generate),
2186 (union_generate), (boxed_generate), (enum_generate),
2187 (node_generate), (module_generate), (get_type_from_type_id),
2188 (str_replace), (g_igenerator_process_properties),
2189 (g_igenerator_process_signals), (g_igenerator_process_types),
2190 (get_type_from_ctype), (g_igenerator_process_function_symbol),
2191 (g_igenerator_process_unregistered_struct_typedef),
2192 (g_igenerator_process_struct_typedef),
2193 (g_igenerator_process_union_typedef),
2194 (g_igenerator_process_enum_typedef),
2195 (g_igenerator_process_function_typedef),
2196 (g_igenerator_process_constant), (g_igenerator_process_symbols),
2197 (g_igenerator_add_symbol), (g_igenerator_is_typedef),
2198 (g_igenerator_generate), (main), (csymbol_new),
2199 (csymbol_get_const_boolean), (ctype_new), (ctype_copy),
2200 (cbasic_type_new), (ctypedef_new), (cstruct_new), (cunion_new),
2201 (cenum_new), (cpointer_new), (carray_new), (cfunction_new),
2202 (eat_hspace), (eat_line), (read_identifier),
2203 (g_igenerator_parse_macros):
2204 * src/gen-introspect.h:
2206 Import gen-introspect to generate introspection information by
2209 2007-11-30 Jürg Billeter <j@bitron.ch>
2211 * src/gidlnode.c: (g_idl_node_new): support creating callback nodes
2213 2007-11-30 Jürg Billeter <j@bitron.ch>
2215 * src/gidlparser.c: (end_element_handler): Don't leave requires
2218 2007-11-29 Johan Dahlin <johan@gnome.org>
2220 * src/gidlparser.c (parse_type_internal): Add char,
2221 gchar and guchar to the builtin types.
2223 2007-11-26 Johan Dahlin <johan@gnome.org>
2225 * src/ginfo.c: (g_object_info_get_type_name),
2226 (g_object_info_get_type_init):
2227 * src/girepository.c: (g_irepository_is_registered):
2228 * src/girepository.h:
2230 Add g_object_info_get_type_name, g_object_info_get_type_init and
2231 g_irepository_is_registered.
2233 2006-08-14 Jürg Billeter <j@bitron.ch>
2235 * src/gidlparser.c: (end_element_handler): Don't leave
2236 namespace and implements states too early.
2239 2007-11-26 Johan Dahlin <johan@gnome.org>
2241 * src/gmetadata.c (validate_struct_blob):
2242 pass blob_type to validate_function_blob instead of
2243 hard-coding BLOB_TYPE_STRUCT.
2245 Patch by Torsten Schoenfeld, fixes #314190
2247 2006-10-03 Torsten Schoenfeld <tsch@cvs.gnome.org>
2249 * src/compiler.c, src/generate.c, src/gidlnode.c,
2250 src/gidlparser.c, src/ginfo.c, src/girepository.c,
2251 tests/invoke/invoke.c, test/invoke/testfns.c: Hush compiler
2252 warnings about return values, signedness mismatches, unused
2253 variables, and unhandles enum values in switch statements.
2255 * tests/invoke/Makefile.am: Don't install the invoke test program.
2256 Add -I ../../src to the cflags used for the test functions files.
2258 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
2260 * src/girepository.h: Export g_invoke_error_quark.
2262 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
2264 * src/ginvoke.c: Remove the fallback implementation of
2265 g_function_info_invoke since we now formally depend on libffi.
2267 2005-07-25 Matthias Clasen <mclasen@redhat.com>
2269 * src/Makefile, tests/Makefile, tests/invoke/Makefile:
2270 Remove these files from cvs, as they are now generated.
2272 * src/gmetadata.c (validate_iface_type_blob): Don't
2273 complain if blob->pointer is not set, since that
2274 happens for enum and flag types. (#308935, Gustavo
2277 * Commit an autoconf-conversion patch by
2278 Gustavo Carneiro (#308708)
2280 2005-05-24 Matthias Clasen <mclasen@redhat.com>
2282 * src/compiler.c (main): Use it here to validate
2283 the generated metadata.
2285 * src/gmetadata.[hc]: Add code to validate a
2288 * metadata-format.txt: Updates
2290 2005-05-22 Matthias Clasen <mclasen@redhat.com>
2292 * tests/*: Add struct offsets to field and vfunc
2295 * src/generate.c (write_vfunc_info): Write offset
2296 information for vfuncs.
2298 * src/gidlnode.c (g_idl_node_build_metadata): Write
2299 the struct offsets into the metadata.
2301 * src/gidlparser.c: Parse the offset attributes of
2302 field and vfunc elements.
2304 * src/gidlnode.h: Add offset members to field and
2307 2005-05-21 Matthias Clasen <mclasen@redhat.com>
2311 * gidl.dtd: Updates.
2313 * src/g-idl-offsets.pl: A perl script which reads a .gidl
2314 file, creates, compiles and runs a C file, and folds the
2315 resulting struct offsets back into the .gidl file.
2317 2005-05-20 Matthias Clasen <mclasen@redhat.com>
2319 * src/gidlparser.c (start_field): Make fields in objects
2322 * src/gidlmodule.c: Include string.h
2327 * metadata-format.txt: Cleanup basic types.
2328 * src/*: Adapt to the changes.
2329 * tests/*: Adapt to the changes.
2330 * examples/gdk-pixbuf.gidl: Adapt to the changes.
2332 * src/gidlnode.c (g_idl_node_get_size): Report the correct
2333 size for enum blobs.
2334 (g_idl_node_get_full_size): Report the correct size for
2337 * src/gidlmodule.c (g_idl_module_build_metadata): Add some
2338 error checking for blob sizes.
2340 2005-05-19 Matthias Clasen <mclasen@redhat.com>
2342 * src/gidlnode.c (g_idl_node_build_metadata): Correctly handle
2343 interface types for which is_pointer is FALSE, e.g. enums.
2345 * src/gidlnode.c (g_idl_node_get_full_size)
2346 * src/gidlparser.c (parse_type_internal):
2347 * src/generate.c (write_type_info): Support unspecialized
2348 lists, hashtables and errors. Also emit a '*' after these.
2352 2005-05-17 Matthias Clasen <mclasen@redhat.com>
2356 * metadata-format.txt: Cleanups by Maciej Katafiasz.
2358 2005-05-15 Matthias Clasen <mclasen@redhat.com>
2360 * src/*.c: Change the directory to be addressed by
2361 1-based indexes, and use an index of zero to mean
2364 2005-05-15 Matthias Clasen <mclasen@redhat.com>
2366 * tests/roundtrips.sh (SIMPLE_TESTS): Add union.test.
2368 * tests/union.test: Add a union test.
2370 * src/generate.c: Handle unions.
2372 * src/girepository.h:
2373 * src/ginfo.c: Add GIUnionInfo and functions to access it.
2375 * src/gidlnode.c: Handle GIdlNodeUnion nodes.
2377 * src/gidlparser.c (start_union): Parse <union> elements.
2379 * src/gidlnode.h: Add a GIdlNodeUnion.
2381 * gidl.dtd: Add a <union> element.
2383 * src/gmetadata.c (g_metadata_check_sanity): Check
2386 * src/gmetadata.h: Add union_blob_size to Header,
2389 * metadata-format.txt: Add a UnionBlob.
2391 2005-05-13 Matthias Clasen <mclasen@redhat.com>
2393 * tests/*: Update testcases.
2395 * src/generate.c (write_callable_info): Don't forget to
2396 write transfer and null-ok attributes for return types
2399 * src/girepository.h:
2400 * src/ginfo.c (g_callable_info_may_return_null):
2401 New function to find out if a function may return NULL.
2403 * src/compiler.c (format_output): Make the generated
2406 * README: Point to a recent libffi snapshot.
2408 * tests/invoke/*: Some invoke tests.
2410 * src/Makefile: Add ginvoke.c and the necessary
2413 * src/girepository.h (g_function_info_invoke): Add
2416 * src/ginvoke.c (g_function_info_invoke): Initial
2417 implementation of invoke functionality based on libffi.
2419 * src/gidlnode.c (g_idl_node_build_metadata): Pass the
2420 strings and types hash tables in the right order when
2422 (find_entry_node): Free the name parts.
2424 2005-05-12 Johan Dahlin <johan@gnome.org>
2426 * src/generate.c: Generate consistent end tags.
2430 2005-05-12 Matthias Clasen <mclasen@redhat.com>
2434 * src/gidlparser.c (start_function): Actually add
2435 methods to objects. (Steven Walter)
2437 * src/girepository.h:
2438 * src/ginfo.c: Rename Transfer and Direction to
2439 GITransfer and GIDirection. (Torsten Schoenfeld)
2441 * tests/*: Make tests work with the changes in name
2444 * src/gidlnode.c (find_entry_node): Parse qualified
2445 names and generate xref nodes for them if needed. Don't
2446 require all modules to be loaded any more.
2448 * src/gidlmodule.c (g_idl_module_build_metadata): Choke
2451 * src/ginfo.c (g_object_info_get_parent): Return NULL
2452 if blob->parent is 0. Still need to make sure index
2455 * src/generate.c: Generate qualified names when
2456 referring to non-local types. Emit transfer attribute
2459 * src/compiler.c (format_output): Put the function
2460 attributes where gcc accepts them.
2462 2005-05-11 Matthias Clasen <mclasen@redhat.com>
2464 * src/compiler.c (main): Add a --verbose cmdline option
2465 and only log messages if it is specified.
2468 * src/gidlnode.c (init_stats, dump_stats): Collect some
2469 statistics on string and type sharing.
2471 * src/gidlmodule.c (g_idl_module_build_metadata): Use
2472 g_message() instead of fprintf().
2474 * src/gidlnode.c (g_idl_node_free): Make this more robust.
2475 (g_idl_node_get_size): Implement for structs.
2476 (g_idl_node_get_full_size): Handle parent being NULL.
2477 (serialize_type): Handle lookup failures more gracefully.
2479 2005-05-10 Matthias Clasen <mclasen@redhat.com>
2481 * src/gidlnode.c (g_idl_node_get_full_size): Correct the
2482 size calculation for 2-parameter types and for objects.
2484 * src/compiler.c: Add a cmdline option for debug output
2485 and install a log handler to implement it.
2486 * src/gidlnode.c: Add some debug spew.
2490 * src/gidlmodule.c (g_idl_module_build_metadata): Don't
2491 forget to count the module name when calculating the
2492 required size for the metadata.
2495 * src/gidlparser.c: Fix compiler warnings.
2497 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2499 * src/compiler.c (main): Free the option context.
2501 * gidl.dtd: Clean up handling of names. All elements
2502 have a "name", only the elements corresponding to
2503 actual callable functions (function, method, constructor),
2504 have an additional "symbol" attribute holding the
2505 dlsym()-able function name.
2507 * src/generate.c: Adapt to generate xml matching the
2511 * src/gidlnode.c: Adapt to parse the new dtd.
2513 * tests/*.test: Adjust to the new dtd.
2515 * metadata-format.txt:
2516 * src/gmetadata.h: Remove the short_name field
2518 * src/gmetadata.c: Shrink size of ValueBlob to 12.
2519 * src/girepository.h:
2520 * src/ginfo.c (g_value_info_get_short_name): Removed
2522 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2524 * gidl.dtd: Allow constructors for boxed types,
2525 patch by Jonathan Blandford.
2528 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2530 * --- Initial import ---