1 2008-08-21 Johan Dahlin <johan@gnome.org>
3 * girepository/girparser.c (resolve_aliases):
4 Remove compilation warnings
6 2008-08-21 Johan Dahlin <johan@gnome.org>
8 * girepository/girepository.c (g_irepository_require):
9 Rewrap and fix double free bug by leaking a bit.
11 2008-08-20 Colin Walters <walters@verbum.org>
13 * girepository/girepository.c: Add new function
14 g_irepository_get_typelib_path which tells
15 us from where we loaded a namespace.
17 2008-08-20 Colin Walters <walters@verbum.org>
19 * tests/scanner/*-expected.gir: Adjust for
21 * giscanner/giwriter.py: Make pylint happy.
23 2008-08-20 Colin Walters <walters@verbum.org>
25 * girepository/girmodule.c (g_ir_module_build_typelib):
26 Calculate size correctly, avoid use-after-free.
28 2008-08-20 Colin Walters <walters@verbum.org>
30 * girepository/girepository.c: Remove
31 g_irepository_register_file in favor of
32 g_irepository_require. There are two
33 possible deployment scenarios for typelibs:
34 First, separate in $DATADIR/gitypelibs/. Second,
35 they may be embedded in shlibs. However since
36 the first is now the normal case, the API is
39 Refactor internals to look up typelibs for
40 namespaces just-in-time, but we expect
41 consumers to call g_irepository_require.
43 Also, add some docs. No one has died from that
45 * gir/Makefile.am: Need --library for glib.
46 * giscanner/girwriter.py: Write out shared-library.
47 * tools/g-ir-writer: Take the first --library
48 argument as the target of shared-library. In
49 the future we should make this nicer with pkg-config
52 2008-08-20 Colin Walters <walters@verbum.org>
54 * girepository/girparser.py: And parse them.
56 2008-08-20 Johan Dahlin <johan@gnome.org>
58 * giscanner/glibast.py: Add gshort/gushort types
60 2008-08-20 Colin Walters <walters@verbum.org>
62 * gir/Makefile.am: Rename .gir files using GI namespace.
63 * girepository/girepository.c: Use XDG_DATA_DIRS for
64 looking up typelibs. Also typelibs are now suffixed
66 * tests/invoke/Makefile.am: Only use metadata.
67 * girepository/Makefile.am: Remove unnecessary include.
68 * tests/scanner/Makefile.am: Update using GI namespaces
71 2008-08-20 Colin Walters <walters@verbum.org>
73 * girepository/transformer.py: Suppress aliases whose
75 * girepository/ast.py: Define some more aliases.
77 2008-08-20 Colin Walters <walters@verbum.org>
79 * girepository/girparser.c: Avoid alias infloops.
81 2008-08-20 Colin Walters <walters@verbum.org>
83 * tests/scanner/foo-expected.gir: Fix expected list type.
85 2008-08-20 Johan Dahlin <johan@gnome.org>
87 * giscanner/glibtransformer.py (GLibTransformer._resolve_type_name):
88 Add a workaround for #548689.
89 We can now compile gtk!
91 2008-08-20 Colin Walters <walters@verbum.org>
93 * giscanner/glibtransformer.py: Try to look up
94 aliases using the c:type too.
96 2008-08-20 Colin Walters <walters@verbum.org>
98 * girepository/girparser.c: Parse union fields.
100 2008-08-20 Johan Dahlin <johan@gnome.org>
102 * giscanner/ast.py: Make time_t an alias for long
104 * gir/gio-2.0-good.gir:
105 * gir/glib-2.0-good.gir:
106 * gir/gobject-2.0-good.gir:
108 * giscanner/glibtransformer.py:
109 Do not delete Class structures, we need them in gdk/gtk.
110 * tests/scanner/drawable-expected.gir:
111 * tests/scanner/foo-expected.gir:
112 * tests/scanner/utility-expected.gir:
115 2008-08-20 Johan Dahlin <johan@gnome.org>
117 * tests/scanner/Makefile.am:
118 * tests/scanner/annotation-expected.gir:
119 * tests/scanner/annotation.c (annotation_object_class_init),
120 (annotation_object_init), (annotation_object_method),
121 (annotation_object_in), (annotation_object_out),
122 (annotation_object_inout), (annotation_object_inout2),
123 (annotation_object_inout3), (annotation_object_calleeowns),
124 (annotation_object_calleesowns), (annotation_object_get_strings),
125 (annotation_object_with_voidp), (annotation_object_get_objects),
126 (annotation_object_create_object), (annotation_object_allow_none):
127 * tests/scanner/annotation.h:
128 * tests/scanner/foo-expected.gir:
129 * tests/scanner/foo.c:
130 * tests/scanner/foo.h:
131 Split out annotation tests out of foo
133 2008-08-20 Johan Dahlin <johan@gnome.org>
135 * tests/scanner/Foo-expected.gir:
136 * tests/scanner/Makefile.am:
137 * tests/scanner/foo-expected.gir:
138 * tests/scanner/foo-object.h:
139 * tests/scanner/foo.c:
140 Foo->foo, foo-object.h -> foo.h
142 2008-08-20 Johan Dahlin <johan@gnome.org>
144 * tests/scanner/Foo-expected.gir:
145 * tests/scanner/Makefile.am:
146 * tests/scanner/drawable-expected.gir:
147 * tests/scanner/drawable.c (test_drawable_class_init),
148 (test_drawable_init):
149 * tests/scanner/drawable.h:
150 * tests/scanner/foo-object.h:
151 * tests/scanner/foo.c (foo_boxed_method):
152 Move the drawable parts out of Foo to its own test.
154 2008-08-20 Johan Dahlin <johan@gnome.org>
156 * tests/scanner/Foo-expected.gir:
157 * tests/scanner/foo-object.h:
158 * tests/scanner/foo.c (foo_drawable_class_init),
160 Add a based on GdkDrawable which generates
163 2008-08-19 Colin Walters <walters@verbum.org>
165 * giscanner/transformer.py: Don't try
166 to strip prefix before namespace.
168 2008-08-19 Johan Dahlin <johan@gnome.org>
170 * giscanner/transformer.py:
171 * tests/scanner/Foo-expected.gir:
172 * tests/scanner/foo-object.h:
173 Add support for typedef void foo type of
176 2008-08-19 Johan Dahlin <johan@gnome.org>
179 * giscanner/girwriter.py:
180 * giscanner/glibtransformer.py:
181 * giscanner/transformer.py:
182 * tests/scanner/Foo-expected.gir:
183 Add basic support for union, base the code much
184 on Struct. Add a testcase.
186 2008-08-19 Johan Dahlin <johan@gnome.org>
188 * tests/scanner/Foo-expected.gir:
189 * tests/scanner/foo-object.h:
190 Add a union testcase which the compiler currently
193 2008-08-19 Johan Dahlin <johan@gnome.org>
195 * gobject-introspection-1.0.pc.in:
196 Add a g_ir_compiler variable
198 2008-08-19 Colin Walters <walters@verbum.org>
200 * giscanner/ast.py: Rework types to be more closely
202 * giscanner/girparser.py: Parse more bits.
203 * giscanner/girwriter.py: Write sequences in a new
204 way that specifies container type.
205 * giscanner/glibast.py: Adjust for ast.py changes,
206 add 'ctype' property to GLibObject and GLibInterface
207 so we can look things up by it later.
208 * gicanner/transformer.py: Names is new class holding
209 the various namespaces we manage. Do not confuse
210 with Namespace which is toplevel XML node effectively.
211 Rework all type resolution to go through
212 _resolve_type_name_1.
213 * giscanner/glibtransformer.py: Raise UnknownTypeError
214 instead of ValueError for cleanliness. Add Unresolved
215 class to mark types whose parent we haven't seen yet.
216 Use new Names object from transformer.py.
217 Correctly look up parent=.
218 Fix type validation to handle sequences.
219 * tests/scanner/Foo-expected.gir: Update for sequence
220 work, int instead of int32.
221 * tools/g-ir-scanner: Add --noclosure option
222 * gir/Makefile.am: Use --noclosure by default for
225 2008-08-18 Johan Dahlin <johan@gnome.org>
227 * gir/gio-2.0-good.gir:
228 * gir/glib-2.0-good.gir:
229 * gir/gobject-2.0-good.gir:
232 2008-08-18 Johan Dahlin <johan@gnome.org>
235 * giscanner/girparser.py:
236 * giscanner/girwriter.py:
237 * giscanner/glibast.py:
238 * giscanner/glibtransformer.py:
239 * giscanner/transformer.py:
240 * tests/scanner/Foo-expected.gir:
241 * tests/scanner/foo-object.h:
242 * tests/scanner/utility-expected.gir:
243 * tests/scanner/utility.h:
244 Redo type resolving and validation.
245 Add a couple of new tests.
246 Patch mostly written by Colin.
248 2008-08-18 Johan Dahlin <johan@gnome.org>
251 * giscanner/girparser.py:
253 * giscanner/transformer.py:
254 Improve enum parsing for enums without a GType.
255 Make flags/enum references to other girs work
256 * giscanner/utils.py:
258 * tests/scanner/Makefile.am:
259 * tests/scanner/foo-object.h:
260 * tests/scanner/utility-expected.gir:
261 * tests/scanner/utility.h:
262 Add a new test for external enum references
264 2008-08-18 Johan Dahlin <johan@gnome.org>
266 * docs/global-module-registry.txt: Update
268 * tests/array.gir: Update with new type proposal
270 * girepository/girepository.c (g_type_tag_to_string):
271 * girepository/girepository.h:
272 * girepository/girnode.c (g_ir_node_get_full_size_internal),
274 * girepository/girnode.h:
275 Make enum serializing functions public. Clean up some whitespace.
277 2008-08-17 Johan Dahlin <johan@gnome.org>
279 * docs/global-module-registry.txt:
280 Add a document for an on disk module registry format
282 2008-08-17 Johan Dahlin <johan@gnome.org>
285 * gir/gio-2.0-good.gir:
288 2008-08-17 Johan Dahlin <johan@gnome.org>
291 * gir/glib-2.0-good.gir:
292 * gir/gobject-2.0-good.gir:
293 * giscanner/cgobject.py:
294 * giscanner/glibtransformer.py:
295 Regenerate GObject & GType.
296 Avoid warnings when generating gobject-2.0.gir.
297 Introspect a little more, and skip *_get_type functions.
299 2008-08-17 Colin Walters <walters@verbum.org>
301 * gir/glib-2.0.gir, gir/gobject-2.0.gir:
302 Rename to -good, always generate during build.
303 * gir/Makefile.am: Ensure .gir files dep on
305 * Makefile.am: Switch build order to ensure
306 the scanner is ready before we do gir/.
307 * tools/g-ir-scanner: Look for .git too.
309 2008-08-17 Johan Dahlin <johan@gnome.org>
311 * girepository/gtypelib.c (validate_enum_blob):
312 * giscanner/glibtransformer.py:
313 * giscanner/transformer.py:
314 Remove resolve_possible_typedefs, it was unused.
315 Allow multiple enum values of the sample value in an enum,
316 since it's actually pretty common.
317 Register enums so they can be resolved too.
319 2008-08-16 Johan Dahlin <johan@gnome.org>
321 * giscanner/girparser.py:
322 Parse enumeration/bitfield.
324 2008-08-16 Johan Dahlin <johan@gnome.org>
326 * giscanner/girparser.py:
329 2008-08-16 Johan Dahlin <johan@gnome.org>
331 * giscanner/glibtransformer.py:
332 Resolve type names for alias targets
333 * giscanner/transformer.py:
334 Skip FILE* parameters fow now
336 2008-08-16 Johan Dahlin <johan@gnome.org>
339 * gir/gobject-2.0.gir:
342 * tests/scanner/Makefile.am:
345 2008-08-15 Colin Walters <walters@verbum.org>
347 * giscanner/glibtransformer.py: Explicitly construct
348 new list, since we're deleting as we iterate.
349 Don't delete all structures which end in Class; just
350 ones which have a paired GObject.
351 Fix printing of type warning.
352 * giscanner/transformer.py: Make strip_namespace_object
353 be the identity function if it doesn't match the
356 2008-08-15 Colin Walters <walters@verbum.org>
358 * giscanner/cgobject.py: Define yet more argument
359 prototypes; fix prototype for g_type_fundamental.
361 2008-08-14 Johan Dahlin <johan@gnome.org>
364 * tests/constant.gir:
367 * tools/generate.c (write_struct_info):
368 Fix generator for constant/gobject/struct
370 2008-08-14 Johan Dahlin <johan@gnome.org>
374 * tools/generate.c (write_enum_info):
375 Fix generation of enum/bitfields
377 2008-08-14 Johan Dahlin <johan@gnome.org>
379 * girepository/girparser.c (start_field), (start_constant),
380 (start_type), (end_element_handler):
381 Clear up constant parsing
386 * tools/generate.c (write_callable_info), (write_function_info),
387 (write_callback_info), (write_constant_info), (write_signal_info),
388 (write_vfunc_info), (write_property_info), (write_object_info),
389 (write_interface_info):
390 Constants/Signals are handled now.
392 2008-08-14 Johan Dahlin <johan@gnome.org>
394 * girepository/girparser.c (start_type):
395 Don't require c:type.
399 Update, remove parts we don't support yet
400 * tests/roundtrips.sh:
402 * tools/generate.c (write_type_info), (write_field_info),
403 (write_callable_info), (write_struct_info):
404 Make it emit proper gir.
406 2008-08-14 Johan Dahlin <johan@gnome.org>
408 * giscanner/transformer.py:
409 New internal function for adding a new node.
411 2008-08-14 Johan Dahlin <johan@gnome.org>
414 Define an internal _H_ variable so we skip parsing both
415 i18n headers, only one is needed.
417 Add the glib-2.0.gir too.
418 * giscanner/glibast.py:
419 Add gconstpointer as an alias for ANY
420 * giscanner/transformer.py:
421 Do not lower case enumeration names per se.
422 Skip functions which has parameters called 'va_list'
424 2008-08-14 Colin Walters <walters@verbum.org>
426 * giscanner/transformer.py: Comment data structures.
427 Also squash pointers in resolve_type_name to correspond
428 with what we do for params.
429 * giscanner/glibtransformer.py: Print warnings in more
430 situations. Rework checks for method/constructor to
431 look up in our GType database instead of just checking
432 for *. Avoid generating <record> for GObject which
433 duplicate the <class>.
434 * gir/Makefile.am: Generate glib-2.0.gir and gobject-2.0.gir
437 2008-08-14 Johan Dahlin <johan@gnome.org>
439 * giscanner/girwriter.py:
440 * giscanner/glibast.py:
441 * giscanner/glibtransformer.py:
442 * giscanner/transformer.py:
445 Add pyflakes.py and run it in make check.
446 Update the source code to fix the errors reported by
449 2008-08-14 Johan Dahlin <johan@gnome.org>
452 * giscanner/girparser.py:
453 * giscanner/glibast.py:
454 * giscanner/glibtransformer.py:
455 Refactor the parser a bit.
456 Add parent type to interfaces and update callsites.
458 2008-08-14 Johan Dahlin <johan@gnome.org>
460 * giscanner/glibtransformer.py:
461 * giscanner/utils.py:
462 Refactor a bit, avoid isinstance and add a method
463 for each type we parse.
465 2008-08-14 Johan Dahlin <johan@gnome.org>
468 * giscanner/girparser.py:
469 * giscanner/glibtransformer.py:
471 Run pep8.py in make check, fix old errors.
473 2008-08-13 Colin Walters <walters@verbum.org>
475 * giscanner/girparser.py: Parse records.
477 2008-08-13 Colin Walters <walters@verbum.org>
479 * gir/Makefile.am: Install again.
480 * gir/gobject-2.0.gir: Add some more bits.
482 2008-08-13 Colin Walters <walters@verbum.org>
484 * gir/gobject-2.0.gir: Use correct namespace, add GType.
485 * giscanner/girparser.py: Handle aliases.
486 * giscanner/transformer.py: Record aliases. Make resolver
487 functions public; we now call into these explicitly from
488 glibtransformer. Handle resolving aliases.
489 * giscanner/glibtransformer.py: Separate our internal namespace
490 from included ones. Call up into transformer's resolver functions.
492 2008-08-13 Johan Dahlin <johan@gnome.org>
494 * girepository/girnode.c (g_ir_node_get_full_size_internal):
495 * girepository/girparser.c (start_class):
496 * giscanner/glibtransformer.py:
497 Allow get_type to be None, set a get_type for GInitiallyUnowned too.
499 2008-08-13 Johan Dahlin <johan@gnome.org>
501 * giscanner/cgobject.py:
502 Register GInitiallyUnowned
503 * giscanner/girwriter.py:
504 * giscanner/glibtransformer.py:
505 Special case GObject/GInitially owned as they are a bit special to use.
507 2008-08-13 Colin Walters <walters@verbum.org>
509 * tests/scanner/Foo-expected.gir, tests/scanner/utility-expected.gir:
510 Object is in GObject namespace.
512 2008-08-13 Colin Walters <walters@verbum.org>
514 * giscanner/girparser.py: Fix processing of functions
517 2008-08-13 Colin Walters <walters@verbum.org>
519 * giscanner/girparser.py: Parse more than just <class.
520 * giscanner/glibtransformer.py: Put aliases in a separate
521 data structure since their name is not canonicall.
522 * giscanner/transformer.py: Handle resolving type names
525 2008-08-13 Johan Dahlin <johan@gnome.org>
527 * tools/g-ir-scanner:
528 Allow multiple libraries
529 * giscanner/glibtransformer.py:
530 Rename load_library to add_library, traverse over all libraries
531 when trying to resolve a function
533 2008-08-12 Colin Walters <walters@verbum.org>
535 * giscanner/transformer.py: Record typedefs as <alias> elements.
536 Also attempt to look up types in external namespaces.
537 * giscanner/girwriter.py: Write them.
538 * giscanner/glibtransformer.py: Rework resolver using real instanceof
539 checks. Resolve interface methods and properties.
540 * tests/scanner/foo-object.h: Add a method with typedef.
541 * tests/scanner/Foo-expected.gir: Update.
542 * girepository/girnode.c: Debug tweaks.
543 * girepository/girparser.c: Make a first pass through the XML where we
544 record all the aliases. This lets us resolve them as we go through the
546 * gir/Makefile.am: Don't install gobject-2.0.gir; we want that to come
549 2008-08-12 Colin Walters <walters@verbum.org>
551 * giscanner/glibtransformer.py: Resolve typedefs (e.g. AtkAttributeSet -> GSList).
552 Correctly do subclasseing in 2nd pass resolution. Handle callbacks in structure
554 * giscanner/transformer.py: Record typedefs and expose public API for resolving
556 * tests/scanner/Foo-expected.gir: Fix expected callback types.
558 2008-08-12 Colin Walters <walters@verbum.org>
560 * giscanner/glibtransformer.py: Also transform object properties.
562 2008-08-12 Colin Walters <walters@verbum.org>
564 * giscanner/glibtransformer.py: Also transform callbacks
565 and structure field types.
566 * tests/scanner/Fooe-expected.gir: Update to expect correct
567 names for callbacks and structs.
569 2008-08-12 Colin Walters <walters@verbum.org>
571 * girepository/girparser.c: Handle 'any'.
572 * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
575 2008-08-12 Colin Walters <walters@verbum.org>
577 * giscanner/glibtransformer.py: We need to do type
578 resolution in a second pass after we've seen all the
581 2008-08-12 Colin Walters <walters@verbum.org>
583 * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
584 Add enum return value.
585 * giscanner/glibtransformer.py: Transform function return types
588 2008-08-12 Colin Walters <walters@verbum.org>
590 * tests/scanner/Makefile.am: Dep .gir files on scanner
591 sources too. Also remove @ so we see scanner invocations.
593 2008-08-12 Colin Walters <walters@verbum.org>
595 * girepository/girparser.c, girepository/gtypelib.c,
596 girepository/gtypelib.h, girepository/girnode.c:
597 Remove usage of (GAPI-oriented) TypeTag in favor of
598 GITypeTag from girepository.h.
600 2008-08-10 Colin Walters <walters@verbum.org>
602 * tests/roundtrips.sh: Use the correct tests.
604 2008-08-10 Colin Walters <walters@verbum.org>
606 * giscanner/cgobject.py: Declare/wrap a few more functions.
607 Fix parameter types for g_object_new and g_type_fundamental.
609 2008-08-10 Colin Walters <walters@verbum.org>
611 * giscanner/cgobject.py: Add new decorator @gwrap which forces
612 us to declare types for both return value and parameters. The
613 ctypes default of 'int' is bad because it hides 32/64 bit
614 problems. Convert all existing functions to use it.
616 2008-08-09 Johan Dahlin <johan@gnome.org>
618 * giscanner/__init__.py:
620 * giscanner/cgobject.py:
621 * giscanner/gidlparser.py:
622 * giscanner/gidlwriter.py:
623 * giscanner/girparser.py:
624 * giscanner/girwriter.py:
625 * giscanner/glibast.py:
626 * giscanner/glibtransformer.py:
627 * giscanner/odict.py:
628 * giscanner/sourcescanner.py:
629 * giscanner/transformer.py:
630 * giscanner/utils.py:
631 * giscanner/xmlwriter.py:
632 * tools/g-ir-scanner:
636 2008-08-09 Johan Dahlin <johan@gnome.org>
639 * relaxng/c-types.xml:
640 * relaxng/g-types.xml:
641 * relaxng/relaxng.rng:
643 Remove outdated relaxng schemas.
645 2008-08-09 Johan Dahlin <johan@gnome.org>
648 Rename metadata to typelib in variable names,
651 2008-08-09 Johan Dahlin <johan@gnome.org>
655 Remove old C scanner, which got rewritten in python.
657 2008-08-09 Johan Dahlin <johan@gnome.org>
659 * girepository/Makefile.am:
669 Move shared *.[ch] files to girepository from tools
671 2008-08-09 Johan Dahlin <johan@gnome.org>
676 * tests/constant.test:
679 * tests/function.test:
680 * tests/gobject.test:
681 * tests/interface.test:
688 Rename *.test to *.gir
690 2008-08-09 Johan Dahlin <johan@gnome.org>
694 * tests/parser/Foo-expected.gir:
695 * tests/parser/Makefile.am:
696 * tests/parser/foo-object.h:
697 * tests/parser/foo.c:
698 * tests/parser/utility-expected.gir:
699 * tests/parser/utility.c:
700 * tests/parser/utility.h:
701 * tests/scanner/Makefile.am:
702 Rename tests/parser to test/scanner
704 2008-08-08 Colin Walters <walters@verbum.org>
706 * tests/roundtrips.sh: Use local .gir files again.
708 2008-08-08 Colin Walters <walters@verbum.org>
710 * tests/invoke/Makefile.am: .gir file depends on libtool
713 2008-08-08 Colin Walters <walters@verbum.org>
715 * tools/girnode.c: Pass through parent node so we can
716 print the node whose child is NULL, if that occurs.
718 2008-08-08 Johan Dahlin <johan@gnome.org>
721 Disable roundtrip tests which are not yet working
722 * tests/invoke/testfns.gir:
725 2008-08-08 Johan Dahlin <johan@gnome.org>
727 * giscanner/girwriter.py:
729 * giscanner/glibast.py:
730 * giscanner/glibtransformer.py:
731 Swap order of members, to keep it consistent with
734 2008-08-08 Johan Dahlin <johan@gnome.org>
736 * girepository/gtypelib.c (validate_header):
737 * girepository/gtypelib.h:
739 * giscanner/girwriter.py:
740 * giscanner/sourcescanner.c (gi_source_symbol_ref),
741 (gi_source_symbol_unref):
744 * tests/constant.test:
747 * tests/function.test:
748 * tests/gobject.test:
749 * tests/interface.test:
750 * tests/invoke/Makefile.am:
751 * tests/invoke/testfns.xml:
753 * tests/parser/Makefile.am:
754 * tests/roundtrips.sh:
761 * tools/compiler.c (main):
762 * tools/generate.c (write_callable_info), (write_function_info),
764 * tools/gidlmodule.c:
765 * tools/gidlmodule.h:
768 * tools/gidlparser.c:
769 * tools/gidlparser.h:
770 * tools/gidlwriter.c:
771 * tools/gidlwriter.h:
772 * tools/scanner.c (create_node_from_gtype),
773 (create_node_from_ctype), (g_igenerator_process_properties),
774 (g_igenerator_process_signals), (g_igenerator_create_object),
775 (g_igenerator_create_interface), (g_igenerator_create_boxed),
776 (g_igenerator_create_enum), (g_igenerator_create_flags),
777 (g_igenerator_process_function_symbol),
778 (g_igenerator_process_unregistered_struct_typedef),
779 (g_igenerator_process_struct_typedef),
780 (g_igenerator_process_union_typedef),
781 (g_igenerator_process_enum_typedef),
782 (g_igenerator_process_function_typedef),
783 (g_igenerator_process_constant), (g_igenerator_process_symbols),
784 (g_igenerator_add_module), (g_igenerator_add_include_idl):
785 Merge in the gir-compiler branch.
786 Thanks to Philip and Colin for their help.
788 2008-07-26 Colin Walters <walters@verbum.org>
790 * tools/Makefile.am (bin_PROGRAMS): Install g-idl-compiler
791 and g-idl-generate to go along with how we're changing this
792 module to be installed.
793 * gobject-introspection-1.0.pc.in: Set up Cflags and Libs.
795 2008-07-24 Colin Walters <walters@verbum.org>
797 * girepository/girepository.c (g_irepository_register): Add
798 environment variable G_IREPOSITORY_VERBOSE so we can print
799 out what we're doing.
800 * girepository/girepository.c (g_irepository_register_file):
801 Add GError error message to g_debug call.
803 2008-07-08 Jürg Billeter <j@bitron.ch>
805 * giscanner/glibast.py:
809 2008-06-21 Johan Dahlin <jdahlin@async.com.br>
811 * giscanner/girparser.py (GIRParser._parse_api): Ignore a few
814 2008-06-20 Johan Dahlin <jdahlin@async.com.br>
817 * giscanner/girwriter.py:
818 * giscanner/transformer.py:
819 * tests/parser/Foo-expected.gir:
820 * tests/parser/foo-object.h:
821 * tests/parser/foo.c (foo_object_allow_none):
822 Add support for gtk-doc annotations for allow-none.
825 2008-06-19 Johan Dahlin <jdahlin@async.com.br>
828 * giscanner/girwriter.py:
829 * giscanner/glibast.py:
830 * giscanner/glibtransformer.py:
831 * giscanner/transformer.py:
832 * tests/parser/Foo-expected.gir:
833 Start using abstract type instead of the raw C types.
834 Register a bunch of glib types we care about.
836 2008-06-19 Rob Taylor <rob.taylor@codethink.co.uk>
841 2008-06-08 Philip Van Hoof <pvanhoof@gnome.org>
843 * girepository/girepository.c:
844 * girepository/gtypelib.c:
845 * girepository/ginfo.c:
846 * girepository/ginvoke.c:
847 * girepository/girepository.h:
848 * girepository/gtypelib.h:
849 * girepository/gmetadata.c:
850 * girepository/Makefile.am:
851 * girepository/gmetadata.h:
853 * tools/gidlmodule.c:
856 * tools/gidlmodule.h:
857 * tools/gidlparser.c:
859 Renamed GMetadata to GTypelib
861 2008-06-07 Johan Dahlin <jdahlin@async.com.br>
863 * giscanner/xmlwriter.py:
864 Improve line wrapping when > 79 charaters
866 2008-06-05 Jürg Billeter <j@bitron.ch>
869 * giscanner/girwriter.py:
870 * giscanner/transformer.py:
871 Use <type> element for field types
872 * tests/parser/Foo-expected.gir:
875 2008-06-04 Johan Dahlin <jdahlin@async.com.br>
877 * giscanner/glibtransformer.py:
878 Fix a bug which prevented GdkEvent from being generated
880 2008-06-03 Johan Dahlin <jdahlin@async.com.br>
882 * giscanner/Makefile.am:
884 * giscanner/girwriter.py:
885 * giscanner/glibast.py:
886 * giscanner/glibtransformer.py:
887 * giscanner/transformer.py:
888 * giscanner/utils.py:
889 * tests/parser/Foo-expected.gir:
890 Improve enum member parsing and introspection
892 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
894 * giscanner/scannerparser.y:
895 * giscanner/sourcescanner.h:
896 * giscanner/sourcescanner.py:
897 Add a new source type enum for member.
898 Use __repr__ for improved debugging
899 * giscanner/girparser.py:
901 * giscanner/transformer.py:
902 Improve parsing of struct members.
903 * tests/parser/foo-object.h:
906 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
908 * giscanner/xmlwriter.py:
909 Improve error reporting when trying to quote None.
910 * giscanner/girparser.py:
911 Do not print warnings when including more complete .gir files
912 * giscanner/girwriter.py:
913 Do not require a name for parameters, add a todo for singletons
914 * giscanner/glibtransformer.py:
915 Refactor the way structs are done, add a couple of hacks to allow
917 * giscanner/transformer.py:
918 Add enough hacks so cairo, atk and pango.gir can be parsed properly
919 * gobject-introspection-1.0.pc.in:
920 Export girdir, so we can access gobject-2.0.gir from outside
922 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
924 * tools/g-ir-scanner:
925 * tests/parser/Makefile.am:
926 Update sys.path before running the parser so we don't have
927 to setup PYTHONPATH ourselves.
931 * girepository/Makefile.am:
932 * giscanner/transformer.py:
933 * gobject-introspection-1.0.pc.in:
934 * gobject-introspection.pc.in:
937 Rename pkg-config name to gobject-introspection-1.0,
938 Do not installed anything which is not using the gir format.
939 Disable compililation the old C scanner, but still keep the source
940 until all the remaning functionallity has been ported.
942 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
944 * giscanner/giscannermodule.c (symbol_get_ident): Prevent
945 a crash when symbol->indent is NULL.
947 * giscanner/sourcescanner.py (ctype_name): Add ctype_name,
948 a function to convert a CTYPE symbol to a string
950 2008-05-24 Johan Dahlin <jdahlin@async.com.br>
953 * giscanner/girwriter.py:
954 * giscanner/giscannermodule.c
955 (pygi_source_scanner_append_filename),
956 (pygi_source_scanner_parse_file):
957 * giscanner/glibtransformer.py:
958 * giscanner/sourcescanner.py:
959 Revert back to using temporary files to send in headers.
960 Allow Functions to be passed in as callbacks, add a couple
961 of try/excepts missing features.
962 We can now scan pango
964 2008-05-08 Johan Dahlin <johan@gnome.org>
966 * giscanner/glibtransformer.py:
967 * giscanner/transformer.py:
968 Move namespace stripping glibtransformer->transformer
970 2008-05-08 Johan Dahlin <johan@gnome.org>
973 * giscanner/girwriter.py:
974 * giscanner/glibtransformer.py:
975 * giscanner/transformer.py:
976 * tools/g-ir-scanner:
977 Introduce a namespace ast node
979 2008-05-05 Johan Dahlin <johan@gnome.org>
981 * giscanner/__init__.py:
982 * giscanner/sourcescanner.py:
983 * giscanner/transformer.py:
984 Move sourcescanner symbols to the sourcescanner module, instead
985 of in the global __init__ namespace.
987 2008-05-03 Johan Dahlin <johan@gnome.org>
989 * giscanner/glibtransformer.py:
990 * tools/g-ir-scanner:
991 Handle missing parameters better, allow - and + in .la dlname
994 2008-05-03 Johan Dahlin <johan@gnome.org>
996 * giscanner/__init__.py:
998 * giscanner/girwriter.py:
999 * giscanner/glibtransformer.py:
1000 * giscanner/transformer.py:
1001 Parse struct fields properly, improve debugging.
1003 2008-04-29 Johan Dahlin <johan@gnome.org>
1006 * giscanner/girwriter.py:
1007 * giscanner/transformer.py:
1008 * tests/parser/Foo-expected.gir:
1010 Use transfer-ownership everywhere, to mark ownership/calle/caller etc.
1012 2008-04-29 Johan Dahlin <jdahlin@async.com.br>
1015 * docs/g-ir-scanner.1:
1016 * metadata-annotations-proposal.txt:
1017 * metadata-format.txt:
1018 Add a basic, unfinshed man page for g-ir-scanner, move documents into .txt
1020 2008-04-29 Johan Dahlin <jdahlin@async.com.br>
1022 * giscanner/girwriter.py:
1023 * giscanner/glibtransformer.py:
1024 * giscanner/transformer.py:
1025 * giscanner/xmlwriter.py:
1026 * tests/parser/Foo-expected.gir:
1027 * tests/parser/foo-object.h:
1028 Write record/structs to gir file too. Add a couple of tests,
1029 fix an off by one error in xmlwriter.py.
1031 2008-04-28 Johan Dahlin <johan@gnome.org>
1033 * giscanner/xmlwriter.py: Calculate the line length properly,
1034 include the provided extra indentation in the calculation, really.
1036 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
1039 * giscanner/glibast.py:
1040 * giscanner/glibtransformer.py:
1041 * giscanner/transformer.py:
1042 * tools/g-ir-scanner:
1043 Add a --strip-prefix and sort out confusion between names and symbols
1044 for functions and struct + derivaties.
1045 Refactor bootstrap of g-ir-scanner, so we can set options on
1046 Transformer() before parsing everything.
1048 2008-04-28 Johan Dahlin <johan@gnome.org>
1050 * giscanner/transformer.py (Transformer._traverse_one): Avoid recursion
1051 when scanning girepository.h
1053 * giscanner/sourcescanner.py (SourceScanner._preprocess): Define
1054 a __GI_SCANNER__ when we run.
1056 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
1059 * giscanner/girwriter.py:
1060 * giscanner/glibast.py:
1061 * giscanner/glibtransformer.py:
1062 * tests/parser/Foo-expected.gir:
1063 * tests/parser/utility-expected.gir:
1064 Rename most c:identifier to c:type. Add new ones to
1065 class/interface/enum/boxed.
1067 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
1070 * giscanner/girwriter.py:
1071 * giscanner/glibtransformer.py:
1072 * tests/parser/Foo-expected.gidl:
1073 * tests/parser/Makefile.am:
1074 Move c:identifier from return-value to subchild type,
1075 as per Jürgs suggestion
1077 2008-04-28 Johan Dahlin <johan@gnome.org>
1079 * giscanner/girwriter.py:
1080 * tests/parser/Foo-expected.gir:
1081 Write property.type as a child node.
1083 2008-04-27 Johan Dahlin <johan@gnome.org>
1088 * gidl/gobject-2.0.gidl:
1090 * gir/gobject-2.0.gir:
1091 * tests/parser/Makefile.am:
1092 Replace the GObject gidl with a GObject gir.
1094 2008-04-27 Johan Dahlin <johan@gnome.org>
1096 * tools/Makefile.am (bin_SCRIPTS): g-ir-scanner is a script,
1099 * giscanner/xmlwriter.py:
1100 * tests/parser/Foo-expected.gir:
1101 Include indentation in line length calculation
1103 2008-04-27 Johan Dahlin <johan@gnome.org>
1105 * giscanner/girparser.py:
1106 Prettify NS parsing using elementtree.
1108 2008-04-27 Johan Dahlin <johan@gnome.org>
1111 * giscanner/Makefile.am:
1112 * giscanner/girparser.py:
1113 * giscanner/glibtransformer.py:
1114 * tests/parser/Foo-expected.gidl:
1115 * tests/parser/Foo-expected.gir:
1116 * tests/parser/Makefile.am:
1117 * tests/parser/utility-expected.gidl:
1118 * tests/parser/utility-expected.gir:
1119 * tools/g-ir-scanner:
1120 Switch over to GIR as the default format. Add a simple GIDL
1122 Update tests and fix simplify makefiles by depending
1123 on GNU make extensions.
1125 2008-04-27 Johan Dahlin <johan@gnome.org>
1127 * giscanner/xmlwriter.py:
1128 Wrap attributes for lines which are wider than 79 characters
1130 * giscanner/scannerlexer.l:
1131 Allow parenthesis in annotations
1134 * giscanner/gidlwriter.py:
1135 * giscanner/girwriter.py:
1136 * giscanner/glibtransformer.py:
1137 * giscanner/transformer.py:
1138 Add initial sequence support, including annotation.
1139 Refactor type handling a bit.
1141 2008-04-27 Johan Dahlin <johan@gnome.org>
1143 * tests/parser/Foo-expected.gidl:
1144 * tests/parser/foo-object.h:
1145 * tests/parser/foo.c (foo_object_class_init),
1146 (foo_object_get_strings), (foo_object_get_objects):
1147 Add two new functions to check sequence return values.
1148 Also fixes a compilation warning.
1150 2008-04-27 Johan Dahlin <johan@gnome.org>
1152 * giscanner/giscannermodule.c (]): Cast the getter, avoids
1153 a compilation warning.
1155 * tools/Makefile.am (g_ir_scanner_SOURCES):
1156 g-ir-scanner has no sources.
1158 2008-04-25 Johan Dahlin <johan@gnome.org>
1160 * giscanner/Makefile.am:
1162 * giscanner/gidlparser.py:
1163 * giscanner/gidlwriter.py:
1164 * giscanner/girwriter.py:
1165 * giscanner/glibast.py:
1166 * giscanner/glibtransformer.py:
1167 * giscanner/transformer.py:
1168 Split out nodes to ast.py and glibast.py
1170 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
1172 * giscanner/Makefile.am:
1173 * giscanner/gidlparser.py:
1174 * giscanner/gidlwriter.py:
1175 * giscanner/girwriter.py:
1176 * giscanner/glibtransformer.py:
1177 * giscanner/gobjecttreebuilder.py:
1178 * giscanner/transformer.py:
1179 * giscanner/treebuilder.py:
1180 * tools/g-ir-scanner:
1181 Rename treebuilder to transformer and
1182 gobjectreebuilder to glibtransformer.
1184 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
1186 * giscanner/Makefile.am:
1187 * giscanner/__init__.py:
1188 * giscanner/cgobject.py:
1189 * giscanner/gidlparser.py:
1190 * giscanner/gidlwriter.py:
1191 * giscanner/girwriter.py:
1192 * giscanner/gobjecttreebuilder.py:
1193 * giscanner/odict.py:
1194 * giscanner/sourcescanner.py:
1195 * giscanner/treebuilder.py:
1196 * giscanner/xmlwriter.py:
1197 * tools/Makefile.am:
1198 * tools/g-ir-scanner:
1199 Add LGPLv2 license header and install all python files
1201 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
1204 * giscanner/gidlwriter.py:
1205 * giscanner/giscannermodule.c (pygi_source_directive_new),
1206 (directive_get_options), (pygi_source_symbol_new),
1207 (symbol_get_base_type), (pygi_source_type_new),
1208 (type_get_base_type), (type_get_child_list),
1209 (pygi_source_scanner_get_symbols),
1210 (pygi_source_scanner_get_directives):
1211 * giscanner/gobjecttreebuilder.py:
1212 * giscanner/sourcescanner.py:
1213 * giscanner/treebuilder.py:
1214 * tests/parser/foo-object.h:
1215 Add support for virtual methods.
1216 Pair struct FooClass with struct Foo.
1217 Clean up the SourceScanner bindings a bit.
1218 Add a testcase for virtual methods.
1220 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
1222 * giscanner/cgobject.py:
1223 * giscanner/gidlwriter.py:
1224 * giscanner/gobjecttreebuilder.py:
1225 Add support for signals
1227 * tests/parser/foo.c (foo_object_class_init):
1228 * Foo-expected.gidl:
1229 Add a signal and update the expected output.
1231 2008-04-24 Johan Dahlin <jdahlin@async.com.br>
1233 * giscanner/gidlwriter.py:
1234 * giscanner/girwriter.py:
1235 * giscanner/giscannermodule.c (directive_get_name),
1236 (directive_get_value), (directive_get_options),
1237 (symbol_get_directives), (symbol_set_directives),
1238 (pygi_source_scanner_parse_file),
1239 (pygi_source_scanner_lex_filename),
1240 (pygi_source_scanner_get_directives), (init_giscanner):
1241 * giscanner/sourcescanner.c (gi_source_scanner_get_directives):
1242 * giscanner/sourcescanner.h:
1243 * giscanner/sourcescanner.py:
1244 * giscanner/treebuilder.py:
1245 * tools/g-ir-scanner:
1246 Add support for source/header annotations.
1248 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
1250 * giscanner/gidlwriter.py:
1251 * giscanner/girwriter.py:
1252 * giscanner/gobjecttreebuilder.py:
1253 * giscanner/treebuilder.py:
1254 Add support for Callbacks
1256 2008-04-22 Havoc Pennington <hp@pobox.com>
1258 * girepository/ginvoke.c (g_function_info_invoke): If a symbol is
1259 not in metadata->module, look for it in the global module, in case
1260 some other object or the app itself provides the symbol.
1262 2008-04-22 Havoc Pennington <hp@pobox.com>
1264 * girepository/gmetadata.c (_g_metadata_init): hack to avoid
1265 dlopening a library that is already in the main app, by checking
1266 whether one of the lib's symbols is already loaded.
1268 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
1270 * tests/parser/Foo-expected.gidl:
1271 * tests/parser/foo-object.h:
1274 2008-04-22 Havoc Pennington <hp@pobox.com>
1276 * girepository/ginfo.c (g_interface_info_find_method):
1277 Use interface_blob_size not object_blob_size to compute offset.
1279 2008-04-22 Havoc Pennington <hp@pobox.com>
1281 * girepository/gmetadata.c (_g_metadata_init): remove
1282 G_MODULE_BIND_LOCAL flag when loading libraries, since some libs
1283 (Glade and Clutter for example) rely on being loaded globally.
1285 2008-04-22 Havoc Pennington <hp@pobox.com>
1287 * girepository/ginfo.c (g_registered_type_info_get_g_type): new
1288 function to get the GType given a RegisteredTypeInfo
1290 2008-04-22 Johan Dahlin <johan@gnome.org>
1292 * COPYING: Add a LGPL license, to prevent automake to
1293 put in a copy of GPL here. Pointed out by Havoc.
1295 * girepository/ginfo.c (g_info_from_entry), (g_type_info_new),
1296 (g_type_info_is_pointer), (g_type_info_get_tag),
1297 (g_type_info_get_param_type), (g_type_info_get_interface),
1298 (g_type_info_get_array_length), (g_type_info_is_zero_terminated),
1299 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
1300 (g_error_domain_info_get_codes), (g_enum_info_get_value),
1301 (g_object_info_get_interface), (g_object_info_get_field),
1302 (g_interface_info_get_prerequisite),
1303 (g_signal_info_get_class_closure), (g_constant_info_get_value):
1304 * girepository/ginvoke.c (get_ffi_type):
1305 * girepository/girepository.h:
1306 * girepository/gmetadata.c (g_metadata_get_dir_entry),
1307 (g_metadata_check_sanity), (validate_header),
1308 (validate_array_type_blob), (validate_iface_type_blob),
1309 (validate_param_type_blob), (validate_error_type_blob),
1310 (validate_type_blob), (validate_constant_blob),
1311 (validate_struct_blob), (validate_enum_blob):
1312 * girepository/gmetadata.h:
1313 * tests/Makefile.am:
1314 * tests/invoke/Makefile.am:
1315 * tests/invoke/invoke.c (main):
1316 * tests/roundtrips.sh:
1317 * tools/Makefile.am:
1318 * tools/compiler.c (format_output), (write_out_metadata), (main):
1319 * tools/generate.c (write_type_name), (write_type_info),
1320 (write_constant_value), (write_enum_info), (load_metadata), (main):
1321 * tools/gidlcompilercontext.c:
1322 * tools/gidlcompilercontext.h:
1323 * tools/gidlcompilerentrynode.c:
1324 * tools/gidlcompilerentrynode.h:
1325 * tools/gidlcompilertypenode.c:
1326 * tools/gidlcompilertypenode.h:
1327 * tools/gidlmodule.c (g_idl_module_build_metadata):
1328 * tools/gidlmodule.h:
1329 * tools/gidlnode.c (init_stats), (dump_stats),
1330 (g_idl_node_get_size), (g_idl_node_get_full_size),
1331 (g_idl_node_cmp), (g_idl_node_can_have_member),
1332 (g_idl_node_add_member), (g_idl_node_param_direction_string),
1333 (parse_int_value), (parse_uint_value), (parse_float_value),
1334 (parse_boolean_value), (find_entry_node), (find_entry),
1335 (serialize_type), (g_idl_node_build_metadata), (write_string):
1337 * tools/gidlparser.c (parse_type_internal):
1338 * tools/quote-file.sh:
1339 Revert revisions 157,149-148,136-129 and 120.
1340 Move back to using g-idl-generate to generate the metadata and
1341 avoids dependency on a c compiler.
1343 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
1345 * giscanner/girwriter.py:
1346 * tools/g-ir-scanner:
1347 Add an initial GIR writer and a --format option to g-ir-scanner
1349 2008-04-21 Johan Dahlin <johan@gnome.org>
1351 * giscanner/cgobject.py: Use ctypes.util.find_library to locate
1352 gobject-2.0 and raise ImportError if not found.
1354 * giscanner/gidlparser.py:
1355 * giscanner/gidlwriter.py:
1356 * giscanner/gobjecttreebuilder.py:
1357 * tools/g-ir-scanner:
1358 Add a --include argument to include types from other idls.
1359 Add a minimalistic GIDL parser (just objects for now)
1360 Implement resolving of external type references and use it to
1361 resolve parent types, argument types and return types.
1363 2008-04-21 Johan Dahlin <johan@gnome.org>
1365 * giscanner/gidlwriter.py:
1366 * giscanner/gobjecttreebuilder.py:
1367 * giscanner/treebuilder.py:
1368 Add support for properties.
1369 Refactor Class/Interface support a bit, to share more code and
1370 always initialize their method attribute to an empty list.
1372 2008-04-21 Johan Dahlin <johan@gnome.org>
1374 * giscanner/cgobject.py:
1375 Add a workaround for a glib bug interface introspection bug
1376 (object_interface_list_properties, object_class_list_properties):
1377 Cast the return value to GParamSpec.
1379 * tests/parser/Foo-expected.gidl: Update
1380 * tests/parser/foo.c: Add a string property
1382 * giscanner/gobjecttreebuilder.py:
1383 After stripping namespaces, remove the original
1384 item to avoid duplication (GtkButton struct and Button object)
1386 2008-04-21 Johan Dahlin <johan@gnome.org>
1388 * giscanner/gobjecttreebuilder.py:
1389 * giscanner/treebuilder.py:
1390 Strip namespaces before objects, so we'll export
1391 GtkButton as Button in the gtk namespace
1393 2008-04-21 Johan Dahlin <johan@gnome.org>
1395 * giscanner/gidlwriter.py:
1396 * giscanner/gobjecttreebuilder.py:
1397 * giscanner/treebuilder.py:
1398 Add constructors for object/boxed types.
1400 2008-04-21 Johan Dahlin <johan@gnome.org>
1402 * giscanner/gidlwriter.py:
1403 * giscanner/gobjecttreebuilder.py:
1404 Add support for boxed types
1406 2008-04-21 Johan Dahlin <johan@gnome.org>
1408 * giscanner/giscannermodule.c: Mark structures as const,
1409 wrap SourceType.const_string.
1411 * tests/parser/foo-object.h: Add a couple of constants.
1413 * giscanner/gidlwriter.py:
1414 * giscanner/gobjecttreebuilder.py:
1415 * giscanner/treebuilder.py:
1416 Add basic support for interfaces
1418 * tools/g-ir-scanner:
1419 Add -o/--output for writing to a file
1421 2008-04-21 Havoc Pennington <hp@redhat.com>
1423 * TODO: add some C API wishlist items I could think of quickly
1425 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
1427 * giscanner/gidlwriter.py:
1428 * giscanner/xmlwriter.py:
1429 Add a simple api for writing tags which can be used
1430 with the new 'with statement' in python 2.5
1432 2008-04-21 Johan Dahlin <johan@gnome.org>
1434 * giscanner/gobjecttreebuilder.py:
1435 Strip namespace and object prefix from method names.
1437 2008-04-21 Johan Dahlin <johan@gnome.org>
1439 * tools/g-ir-scanner (main): Add --pkg option to pass in
1440 pkg-config modules to get cflags from.
1442 * giscanner/gidlwriter.py (GIDLWriter._write_method):
1443 Avoid duplication, reuse function writer for methods.
1445 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
1447 * giscanner/gidlwriter.py:
1448 * giscanner/gobjecttreebuilder.py:
1449 * giscanner/treebuilder.py:
1450 * tools/g-ir-scanner:
1451 Resolve libtool .la files.
1452 Strip name spaces for methods.
1453 Add function symbols
1455 2008-04-20 Johan Dahlin <jdahlin@async.com.br>
1457 * giscanner/cgobject.py:
1458 * giscanner/gidlwriter.py:
1459 * giscanner/gobjecttreebuilder.py:
1460 * giscanner/treebuilder.py:
1461 Add support for classes and methods
1463 2008-04-20 Johan Dahlin <johan@gnome.org>
1465 * giscanner/gidlwriter.py:
1466 * giscanner/gobjecttreebuilder.py:
1467 * giscanner/odict.py:
1468 Avoid conflicts, keep the output ordered similar to
1469 the order of the input.
1470 Add a simple ordered dictionary implemenation
1472 2008-04-19 Johan Dahlin <johan@gnome.org>
1474 * giscanner/cgobject.py:
1475 * giscanner/gidlwriter.py:
1476 * giscanner/gobjecttreebuilder.py:
1477 * tools/g-ir-scanner:
1478 Start introspecting get-type functions.
1479 Implement support for GLib/GFlags GTypes.
1480 Add a ctype based GObject binding.
1482 2008-04-18 Johan Dahlin <jdahlin@async.com.br>
1484 * giscanner/gidlwriter.py:
1485 * giscanner/xmlwriter.py:
1486 * tools/g-ir-scanner:
1487 Add a simplistic gidl writer, which can't do too much.
1489 2008-04-18 Johan Dahlin <johan@gnome.org>
1491 * giscanner/sourcescanner.py:
1492 * giscanner/treebuilder.py:
1493 * tools/g-ir-scanner:
1494 split tree building and source scanning interface to separate files.
1496 2008-04-18 Johan Dahlin <johan@gnome.org>
1498 * tools/g-ir-scanner (Parameter.__init__): Start constructing
1500 - Add support for struct/parameter/return, start parsing of ctypes
1502 * giscanner/giscannermodule.c: wrap GISourceType.child_list and
1505 2008-03-31 Johan Dahlin <johan@gnome.org>
1507 * tools/g-ir-scanner:
1508 Start to build abstract syntax node of scanned sources.
1509 Add support for cpp options.
1511 2008-03-27 Johan Dahlin <johan@gnome.org>
1513 * giscanner/giscannermodule.c:
1514 * giscanner/scannerlexer.l:
1515 * giscanner/sourcescanner.c:
1516 * tools/g-ir-scanner:
1518 Add simple pre-processor using subprocess and a PIPE.
1519 Change the parse_file apis to accept a file descriptor.
1521 2008-03-25 Johan Dahlin <johan@gnome.org>
1523 * giscanner/__init__.py:
1524 * tools/g-ir-scanner:
1525 Fix a typo and add an example python test program.
1527 2008-03-25 Johan Dahlin <johan@gnome.org>
1529 * giscanner/__init__.py:
1530 * giscanner/giscannermodule.c:
1531 * giscanner/sourcescanner.c:
1532 * giscanner/sourcescanner.h:
1533 Add constants and wrap a few more SymbolType fields
1535 2008-03-25 Johan Dahlin <johan@gnome.org>
1539 * giscanner/__init__.py:
1540 * giscanner/giscannermodule.c:
1541 * giscanner/Makefile.am:
1543 Add initial python bindings for the scanner and
1544 depend on python 2.5.
1546 2008-03-25 Johan Dahlin <johan@gnome.org>
1550 * giscanner/Makefile.am:
1551 * giscanner/sourcescanner.c:
1552 * giscanner/sourcescanner.h:
1553 * tools/Makefile.am:
1554 * tools/grealpath.h:
1555 * tools/sourcescanner.c:
1556 * tools/sourcescanner.h:
1558 Move the scanner to a separate library.
1560 2008-03-23 Johan Dahlin <johan@gnome.org>
1562 * tools/Makefile.am:
1565 * tools/scannerlexer.l:
1566 * tools/scannerparser.y:
1567 * tools/sourcescanner.c:
1568 * tools/sourcescanner.h:
1569 Split out the source scanner from the generator.
1570 Rename the symbols used in the scanner to use the gi_ prefix.
1571 This should make it possible to use the raw C parser from
1574 2008-03-23 Johan Dahlin <johan@gnome.org>
1576 * tests/parser/Makefile.am (utility.gidl):
1577 * tests/parser/utility-expected.gidl:
1578 Pass in the gobject.gidl since we're defining a GObject.
1580 2008-03-12 Johan Dahlin <johan@gnome.org>
1582 * relaxng/relaxng.rng:
1583 Add a releaxng in relaxng we can use to validate the relaxngs
1586 2008-03-12 Jürg Billeter <j@bitron.ch>
1588 * tools/scanner.c: (g_igenerator_new):
1589 * tools/scannerparser.y:
1590 Fix compiler warnings.
1592 2008-03-12 Jürg Billeter <j@bitron.ch>
1596 * tools/scannerparser.y:
1597 Start fixing memory management in g-idl-scanner.
1599 2008-03-12 Rob Taylor <rob.taylor@codethink.co.uk>
1601 * tools/gidlcompilercontext.c: (write_compiled):
1602 Fix critical warning when no shlib passed to g-idl-compiler.
1604 2008-03-12 Johan Dahlin <johan@gnome.org>
1606 * tests/parser/utility-expected.gidl:
1607 * tests/parser/utility.h:
1608 Add a get_type-function, so the scanner actually
1609 parses it as an object.
1611 2008-03-12 Johan Dahlin <johan@gnome.org>
1613 * tools/gidlwriter.c (function_generate): Add missing trailing quote.
1616 * tests/parser/Foo-expected.gidl:
1617 * tests/parser/Makefile.am:
1618 * tests/parser/foo-object.h:
1619 * tests/parser/foo.c:
1620 * tests/parser/utility-expected.gidl:
1621 * tests/parser/utility.c:
1622 * tests/parser/utility.h:
1624 Add a new gidl test. 'utility.gidl', which is used to be able
1625 to test external type references. Add a reference to UtilityObject*
1628 2008-03-11 Johan Dahlin <johan@gnome.org>
1632 Remove most global variables
1634 2008-03-11 Philip Van Hoof <me@pvanhoof.be>
1636 * tools/scannerlexer.l:
1638 * tests/parser/Foo-expected.gidl:
1639 * tests/parser/foo.c:
1640 * tests/parser/Makefile.am:
1641 * tests/parser/foo-object.h:
1643 Added a few extra tests. Which resulted in finding a few
1644 bugs. Which resulted in me fixing those bugs
1646 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
1648 * tools/gidlcompilercontext.c: (g_idl_compiler_write_dir_entry),
1649 (g_idl_compiler_write_xref_entry), (g_idl_compiler_add_xref):
1650 Add some comments for strings into generated output for
1653 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
1655 * tools/gidlcompilercontext.c: (write_compiled):
1656 Write out the shlibs variable before writing out the strings
1657 length. Fixes compiler warning when using '-l' flag with
1660 2008-03-11 Johan Dahlin <johan@gnome.org>
1662 * tests/parser/Foo-expected.gidl:
1663 * tests/parser/foo-object.h:
1666 * tools/scannerlexer.l:
1667 Add support for parsing return arguments. Add support for
1668 caller-owns return types.
1669 Patch by Philip Van Hoof.
1671 * tools/scannerparser.y:
1672 Remove parsing of the @deprecated syntax used in headers.
1673 We will support gtk-doc deprecation in the future instead.
1675 2008-03-11 Johan Dahlin <johan@gnome.org>
1677 * tools/compiler.c (main): Coding style fixes
1679 2008-03-10 Johan Dahlin <johan@gnome.org>
1682 Add GCOV_LIBS to GILIBS
1684 2008-03-10 Johan Dahlin <johan@gnome.org>
1686 * tests/parser/Foo-expected.gidl:
1687 * tests/parser/foo.c:
1688 Rename null-ok to direction=out
1690 2008-03-10 Philip Van Hoof <me@pvanhoof.be>
1692 reviewed and extensively tested by Johan
1694 * tests/parser/Foo-expected.gidl:
1695 * tests/parser/foo-object.h:
1696 * tests/parser/foo.c:
1699 * tools/gidlwriter.c:
1702 * tools/scannerlexer.l:
1703 * tools/scannerparser.y:
1705 Add support for scanning for gtk-doc comments inside
1706 C source files. Add tests
1708 2008-03-10 Johan Dahlin <johan@gnome.org>
1710 * tests/parser/Makefile.am:
1711 * tests/parser/foo.c:
1714 * tools/scannerparser.y:
1715 Add an api to lex filenames.
1716 Lex all source .c files passed in on the command line.
1717 Scan sources in a test and a couple of private structures
1718 which should not be included in the generated gidl
1720 2008-03-10 Johan Dahlin <johan@gnome.org>
1722 * tests/invoke/Makefile.am: Make the generated metadata
1723 depend on the g-idl-compiler
1725 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1727 * tools/gidlmodule.c
1728 * tools/gidlmodule.h
1731 Remove the old g-idl-compiler code.
1734 2008-02-22 Mark Doffman <mark.doffman@codethink.co.uk>
1736 * tools/quote-file.sh
1739 Move to using the 'C' struct compiler code.
1741 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1743 * girepository/ginfo.c
1745 Change the way that external references with no namespace
1746 are dealt with. External references with no namespace
1747 are placed into the XML as-if they are a local reference.
1748 This is temporary, but helps with roundtrip tests.
1750 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1752 * girepository/ginfo.c
1753 Add the ability to get the value of a constant of
1754 type TYPE_TAG_SYMBOL. In the case of a symbol the value
1755 is provided as a string.
1757 This would deal properly with:
1758 typedef char* random;
1759 const random = "A string";
1761 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1763 * girepository/ginfo.c
1764 * girepository/girepository.h
1766 Add a function to check if an enum is registered or not.
1767 Previously anything testing this relied on the g-type
1768 string offset having a value of 0.
1770 * girepository/gmetadata.c
1771 * girepository/gmetadata.h
1773 Remove unneccesary or erroneous checks. There were two
1774 metadata validation checks which made sure that the blob
1775 sizes were the same as some magic numbers compiled into the code.
1776 This is wrong as it breaks any forwards compatibility that may
1779 Checks were also present that made sure that unregistered type
1780 blobs had a value of 0 in the g-type offset field. This is
1781 unneccessary. If a type blob is unregistered then any value
1782 in its g-type field is simply invalid.
1784 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1786 * girepository/ginfo.c
1787 * girepository/gmetadata.c
1788 * girepository/gmetadata.h
1790 Change the metadata format to have a standard header
1791 for all the type blobs. Merge the SimpleTypeBlob
1792 and InterfaceTypeBlob into a union. A union of these
1793 two blobs existed previously but was not explicit
1794 in the metadata format.
1796 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1798 * tools/gidlcompilercontext.c
1799 * tools/gidlcompilercontext.h
1800 * tools/gidlcompilerentrynode.c
1801 * tools/gidlcompilerentrynode.h
1802 * tools/gidlcompilertypenode.c
1803 * tools/gidlcompilertypenode.h
1805 Add code to compile a tree of GIdlNodes to
1806 a 'C' struct representing the metadata.
1807 This is to aid cross-compiling. Previously
1808 the g-idl-compiler created a binary blob with
1809 data written in the byte order and alignment
1810 of the tool rather than the intended target.
1812 Cleaned up and improved by Johan and Robert :-)
1814 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1816 * girepository/ginvoke.c
1817 * girepository/girepository.h
1818 * girepository/gmetadata.c
1819 * girepository/gmetadata.h
1821 * tools/gidlparser.c
1822 Modify TYPE_TAG_INTERFACE to TYPE_TAG_SYMBOL
1823 to avoid confusion with the interface blob.
1826 * tools/gidlparser.c
1827 Remove magic numbers and replace with type-tag
1828 enumeration symbols.
1830 * girepository/gmetadata.c
1831 Add validate declaration.
1833 2008-03-10 Jürg Billeter <j@bitron.ch>
1835 * tools/gidlparser.c: (parse_type_internal):
1836 * tools/scannerlexer.l:
1837 * tools/scannerparser.y:
1838 Support C99 _Bool type in scanner.
1840 2008-03-10 Jürg Billeter <j@bitron.ch>
1842 * tests/parser/Foo-expected.gidl:
1843 * tests/parser/foo-object.h:
1844 * tests/parser/foo.c: (foo_enum_method):
1845 * tools/scanner.c: (g_igenerator_process_function_symbol):
1846 Don't skip functions that are defined in the namespace of a type
1847 that doesn't support methods, as for example enums.
1849 2008-03-10 Johan Dahlin <johan@gnome.org>
1851 * gidl.dtd: Remove, we're using relaxng for now
1853 * tests/parser/Foo-expected.gidl:
1854 * tests/parser/foo-object.h:
1855 * tests/parser/foo.c:
1856 Rename the enum/flags get_type functions to include the whole type.
1858 2008-03-08 Marc-Andre Lureau <marcandre.lureau@gmail.com>
1860 * tools/gidlwriter.c (enum_generate): added "type-name",
1861 "get-type" and "deprecated" missing arguments.
1862 * tests/parser/Foo-expected.gidl:
1863 * tests/parser/foo-object.h: test enum type, and no type.
1865 2008-03-06 Johan Dahlin <jdahlin@async.com.br>
1868 Consistent checks, add missing 'test'
1870 2008-03-05 Havoc Pennington <hp@redhat.com>
1872 * configure.ac: Take advantage of a libffi.pc if one exists, as it
1873 does on Fedora 8. Make libffi a hard requirement, since it was in
1874 practice anyway (was not really conditional in the code or
1875 makefile, only in configure).
1877 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1879 reviewed by: Rob Taylor <rob.taylor@codethink.co.uk>
1880 reviewed by: Johan Dahlin <johan@gnome.org>
1882 * tests/Makefile.am:
1883 * tests/roundtrips.sh:
1884 Modify the roundtrips test so that they do not use the
1885 --raw option of the gidl compiler but instead compile a
1886 shared library to use with g_module.
1888 * tests/invoke/Makefile.am:
1889 * tests/invoke/invoke.c:
1890 Modify the invoke tests to build a shared library rather
1891 than use the --raw option.
1893 * tests/invoke/invoke-namespace-find.sh: Removed:
1894 Noone knows why this was here, so removed.
1896 2008-02-19 Rob Taylor <rob.taylor@codethink.co.uk>
1898 * tools/scanner.c: (g_igenerator_process_function_symbol):
1899 Move g_idl_node_can_have_member test later, as it broke spotting
1900 get_type's for nodes that can't have members.
1902 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1905 * tools/gidlnode.c: (g_idl_node_can_have_member):
1906 Add g_idl_node_can_have_member.
1908 * tools/scanner.c: (g_igenerator_process_function_symbol):
1909 Use g_idl_node_can_have_member to test if we should add a function
1910 as a member of the type node.
1912 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1914 * gidl/GLib.gidl: Renamed to gidl/gobject-2.0.gidl:
1916 * tests/parser/Makefile.am:
1917 Rename GLib.gidl to gobject-2.0.gidl and install in /usr/share/gidl.
1919 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1921 * tools/scanner.c: (main):
1922 Ignore -pthread when passed to g-idl-scanner.
1924 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1926 * tools/grealpath.h: Added:
1927 * tools/scanner.c: (main):
1928 * tools/scannerlexer.l:
1929 * tools/Makefile.am:
1930 Always use absolute paths with symbolic links resolved when
1931 comparing filenames.
1933 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1935 * gobject-introspection.pc.in:
1936 Provide variables for g-idl-parser, scanner and compiler in the
1939 2008-02-13 Rob Taylor <rob.taylor@codethink.co.uk>
1942 * girepository/Makefile.am:
1943 * tools/Makefile.am:
1944 Rename GCOV_SOURCES to GCOVSOURCES to top automake complaining.
1946 2008-02-10 Johan Dahlin <johan@gnome.org>
1948 * tests/parser/Foo-expected.gidl:
1949 * tests/parser/foo-object.h:
1950 * tests/parser/foo.c: (foo_boxed_copy), (foo_boxed_free),
1951 (foo_boxed_get_type), (foo_boxed_new), (foo_boxed_method):
1954 2008-02-10 Johan Dahlin <johan@gnome.org>
1956 * tests/parser/Foo-expected.gidl:
1957 * tests/parser/foo-object.h:
1958 * tests/parser/foo.c: (foo_enum_get_type), (foo_flags_get_type):
1959 Add enum and flags test.
1961 2008-02-10 Johan Dahlin <johan@gnome.org>
1965 * girepository/Makefile.am:
1966 Make 'make distcheck' work again.
1968 2008-02-10 Johan Dahlin <johan@gnome.org>
1970 * m4/Makefile.am (EXTRA_DIST): its called as-compiler-flag.m4,
1973 * tests/parser/Makefile.am: Only create Foo.gidl when running make
1974 check, eg exclude it from BUILT_SOURCES.
1976 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
1981 * girepository/Makefile.am:
1982 * m4/Makefile.am: Added:
1983 * m4/as-compiler-flag.m4: Added:
1984 * m4/gcov.m4: Added:
1985 * tools/Makefile.am:
1986 Add ability to generate a coverage report.
1987 Adds configure option --enable-gcov and make rule 'check-coverage'.
1989 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
1993 * gidl/Makefile.am: Added:
1994 * girepository/Makefile.am: Added:
1995 * src/Makefile.am: Renamed to tools/Makefile.am:
1996 * src/compiler.c: Renamed to tools/compiler.c:
1997 * src/g-idl-offsets.pl: Renamed to tools/g-idl-offsets.pl:
1998 * src/generate.c: Renamed to tools/generate.c:
1999 * src/gidlmodule.c: Renamed to tools/gidlmodule.c:
2000 * src/gidlmodule.h: Renamed to tools/gidlmodule.h:
2001 * src/gidlnode.c: Renamed to tools/gidlnode.c:
2002 * src/gidlnode.h: Renamed to tools/gidlnode.h:
2003 * src/gidlparser.c: Renamed to tools/gidlparser.c:
2004 * src/gidlparser.h: Renamed to tools/gidlparser.h:
2005 * src/gidlwriter.c: Renamed to tools/gidlwriter.c:
2006 * src/gidlwriter.h: Renamed to tools/gidlwriter.h:
2007 * src/ginfo.c: Renamed to girepository/ginfo.c:
2008 * src/ginvoke.c: Renamed to girepository/ginvoke.c:
2009 * src/girepository.c: Renamed to girepository/girepository.c:
2010 * src/girepository.h: Renamed to girepository/girepository.h:
2011 * src/gmetadata.c: Renamed to girepository/gmetadata.c:
2012 * src/gmetadata.h: Renamed to girepository/gmetadata.h:
2013 * src/scanner.c: Renamed to tools/scanner.c:
2014 * src/scanner.h: Renamed to tools/scanner.h:
2015 * src/scannerlexer.l: Renamed to tools/scannerlexer.l:
2016 * src/scannerparser.y: Renamed to tools/scannerparser.y:
2017 * tests/invoke/Makefile.am:
2018 Split src/ into girepository/ and tools/
2022 * girepository/Makefile.am:
2023 * tests/Makefile.am:
2024 * tests/invoke/Makefile.am:
2025 * tests/parser/Makefile.am:
2026 * tests/roundtrips.sh:
2027 * tools/Makefile.am:
2028 Make distcheck work.
2030 2008-02-04 Rob Taylor <rob.taylor@codethink.co.uk>
2032 * tests/invoke/invoke.c: (main):
2033 * tests/invoke/testfns.c: (test6), (test7):
2034 * tests/invoke/testfns.xml:
2035 Add tests for invokation with a GList argument.
2036 Also tests caller-owns return values.
2038 2008-02-04 Rob Taylor <robtaylor@floopily.org>
2041 Add some documentation for GICallableInfo
2043 2008-02-01 Mark Doffman <mark.doffman@codethink.co.uk>
2046 Correct syntax errors in the DTD file.
2048 * relaxng/c-types.xml:
2049 * relaxng/g-types.xml:
2051 Add a RelaxNG specification for the GObject Introspection XML data.
2052 The Specification has validated all of the test files.
2054 2008-01-25 Rob Taylor <robtaylor@floopily.org>
2056 * tests/roundtrips.sh:
2057 * tests/struct.test:
2058 Add roundtrip tests for structs.
2060 2008-01-11 Johan Dahlin <johan@gnome.org>
2062 * src/scanner.c (g_igenerator_process_function_symbol):
2063 Refactor out g_idle_node_add_member.
2064 (create_node_from_gtype, create_node_from_ctype):
2065 Use case instead of if...else
2066 (get_type_from_type_id):
2067 Rename to create_node_from_gtype
2068 (get_type_from_ctype):
2069 Rename to create_node_from_ctype
2071 Rename ginode -> node, gitype -> type, gifunc -> func.
2073 * src/gidlnode.c (g_idl_node_add_member, g_idl_node_cmp):
2074 Two new functions, refactor out of scanner.c
2076 * src/scanner.c: (g_igenerator_process_function_symbol):
2077 * src/scannerlexer.l:
2078 Do not save the content of the deprecated variable, only
2081 2008-01-11 Johan Dahlin <johan@gnome.org>
2083 * tests/parser/foo-object.h: Add a couple of comment parser tests.
2085 2008-01-11 Jürg Billeter <j@bitron.ch>
2087 * src/scannerlexer.l:
2088 Fix GTK-Doc parsing.
2090 2008-01-11 Jürg Billeter <j@bitron.ch>
2092 * src/scannerlexer.l:
2093 Fix GTK-Doc parsing.
2095 2008-01-11 Jürg Billeter <j@bitron.ch>
2097 * src/scanner.c: (lookup_symbol):
2098 Return unresolved name if we find unknown symbol.
2100 2008-01-11 Jürg Billeter <j@bitron.ch>
2102 * src/scanner.c: (g_igenerator_generate):
2103 Initialize GObject to fix scanning interface properties.
2105 * tests/parser/Foo-expected.gidl:
2106 * tests/parser/foo-object.h:
2107 * tests/parser/foo.c: (foo_interface_get_type):
2108 Test interfaces with GObject prerequisite.
2110 * tests/parser/Makefile.am:
2111 Set G_DEBUG=fatal_warnings to abort test on warnings and criticals.
2113 2007-12-27 Johan Dahlin <johan@gnome.org>
2115 * src/scannerlexer.l:
2116 Parse gtk-doc comments.
2118 * src/gidlwriter.c: (function_generate):
2119 Reorganize, avoid duplication and add support for
2120 writing deprecated functions.
2122 * src/scannerparser.y:
2124 Add new structure CDirective and functions to create/free them.
2126 * src/scanner.c: (g_igenerator_process_function_symbol),
2127 (g_igenerator_process_unregistered_struct_typedef),
2128 (g_igenerator_process_struct_typedef),
2129 (g_igenerator_process_union_typedef),
2130 (g_igenerator_process_enum_typedef),
2131 (g_igenerator_process_function_typedef), (g_igenerator_add_symbol),
2132 (g_igenerator_start_preprocessor):
2133 Parse @deprecated directive for functions.
2134 Remove some more C99isms.
2135 Send in -C to cpp to avoid stripping comments.
2137 * tests/parser/foo-object.h:
2138 * tests/parser/Foo-expected.gidl:
2139 Add deprecated directive
2141 2007-12-27 Johan Dahlin <johan@gnome.org>
2143 * src/scannerlexer.l (intsuffix): Add emacs mode line and
2144 escape ' and " so it looks more like C.
2147 Unlink temporary file used.
2149 2007-12-27 Johan Dahlin <johan@gnome.org>
2151 * src/scanner.c: (g_igenerator_new), (g_igenerator_free),
2152 (g_igenerator_start_preprocessor), (main):
2154 * src/scannerparser.y:
2155 Plug a couple of simple memory leaks.
2157 2007-12-27 Johan Dahlin <johan@gnome.org>
2159 * src/scanner.c: (g_igenerator_parse_macros),
2160 (g_igenerator_start_preprocessor), (g_igenerator_set_verbose),
2163 * src/scannerparser.y:
2164 * tests/parser/Makefile.am:
2166 Improve error reporting, return when the preprocessor fails.
2167 Add a verbose parameter, to aid debugging.
2168 Revert to using a temporary file to communicate between the
2169 preprocessor and the parser, because we need to wait for
2170 the exit code from the pre-processor before starting to parse.
2172 2007-12-16 Johan Dahlin <jdahlin@async.com.br>
2174 * src/Makefile.am: Rename clexer.l to scannerlexer.l and
2175 cparser.y to scannerparser.y
2177 2007-12-11 Johan Dahlin <johan@gnome.org>
2181 * src/scanner.c: (g_igenerator_new):
2183 Get rid of the global the_generator variable.
2185 2007-12-10 Johan Dahlin <johan@gnome.org>
2187 * src/scanner.c (main): Add an output option,
2188 add checks for required parameters
2191 set BUILD_SOURCES and CLEANFILES properly
2193 * src/gidlwriter.c: (g_writer_write_inline), (g_writer_write),
2194 (g_writer_write_indent), (g_writer_write_unindent),
2195 (field_generate), (value_generate), (constant_generate),
2196 (property_generate), (function_generate), (vfunc_generate),
2197 (signal_generate), (interface_generate), (struct_generate),
2198 (union_generate), (boxed_generate), (enum_generate),
2199 (node_generate), (g_writer_write_module), (g_idl_writer_save_file):
2201 * src/scanner.c: (g_igenerator_generate):
2203 * src/scannerwriter.c:
2205 Refactor scannerwriter to only be tied to a GIdlModule and move
2206 it (again!) to gidlwriter.c. Change the writer function to take
2209 2007-12-10 Johan Dahlin <johan@gnome.org>
2212 * src/scanner.c: (g_igenerator_generate):
2214 * src/scannerwriter.c: (g_igenerator_write_inline),
2215 (g_igenerator_write), (g_igenerator_write_indent),
2216 (g_igenerator_write_unindent), (field_generate), (value_generate),
2217 (constant_generate), (property_generate), (function_generate),
2218 (vfunc_generate), (signal_generate), (interface_generate),
2219 (struct_generate), (union_generate), (boxed_generate),
2220 (enum_generate), (node_generate), (module_generate),
2221 (g_scanner_write_file):
2223 Move the scanner gidl writing to a separate source file.
2225 2007-12-10 Johan Dahlin <johan@gnome.org>
2230 Move over all CType construction functions.
2232 * tests/parser/Makefile.am:
2233 Be verbose when printing parsing tests results.
2235 2007-12-10 Johan Dahlin <johan@gnome.org>
2237 * src/scanner.c (g_igenerator_start_preprocessor): Refactor
2238 preprocessor handling to here. Start cpp insteado of cc -E,
2239 always include -U__GNUC__, since it's specific to the preprocessor
2242 * tests/parser/Makefile.am (check-local): Silent diff and skip
2243 -U__GNUC__ which is always defined now
2245 2007-12-10 Johan Dahlin,,, <jdahlin@plasttroll>
2247 reviewed by: <delete if not using a buddy>
2249 * src/scanner.c: (g_igenerator_start_preprocessor), (main):
2250 * tests/parser/Makefile.am:
2252 2007-12-09 Johan Dahlin <johan@gnome.org>
2255 Use GOption for command line options.
2256 (g_igenerator_new, main): Simplify constructor and they way
2257 parameters are passed into it.
2263 * src/gen-introspect.c:
2264 * src/gen-introspect.h:
2266 Rename gen-introspect.[ch] to scanner.[ch]
2268 2007-12-09 Johan Dahlin <johan@gnome.org>
2272 * src/Makefile.am: Rename gen-introspect to g-idl-scanner,
2273 don't make the repository library and the other utilites link against
2276 * src/gen-introspect.c: (g_igenerator_create_object),
2277 (g_igenerator_create_interface), (g_igenerator_create_boxed),
2278 (g_igenerator_create_enum), (g_igenerator_create_flags),
2279 (g_igenerator_process_module_symbol),
2280 (g_igenerator_process_module), (g_igenerator_generate), (main):
2281 * src/gen-introspect.h:
2282 Refactor g_igenerator_process_types into smaller pieces.
2284 * tests/parser/Makefile.am:
2285 Depend on the gen-introspect binary
2287 2007-12-09 Johan Dahlin <johan@gnome.org>
2289 * src/gen-introspect.c (g_igenerator_process_types):
2290 Break into smaller pieces, one for each generated node type.
2292 2007-12-08 Johan Dahlin <johan@gnome.org>
2294 * src/gen-introspect.c: (g_igenerator_process_types),
2295 (g_igenerator_add_module):
2296 * tests/parser/Foo-expected.gidl:
2297 * tests/parser/foo-object.h:
2298 * tests/parser/foo.c: (foo_subobject_class_init),
2299 (foo_subobject_init):
2301 Add a subobject test and make sure to register defined classes
2302 in the lookup symbol hash table.
2304 2007-12-08 Johan Dahlin <johan@gnome.org>
2308 * src/gen-introspect.c: (g_igenerator_new), (lookup_symbol),
2309 (g_igenerator_process_types), (g_igenerator_add_module),
2310 (g_igenerator_add_include_idl), (main):
2311 * src/gen-introspect.h:
2312 * tests/parser/Makefile.am:
2313 * tests/parser/Foo-expected.gidl:
2315 Change the gen-introspect to generate namespaced module names,
2316 such as GLib.Object instead of GObject.
2317 Add a GLib.gidl which introduces GLib.Object and GLib.InitiallyUnowned,
2318 add a --include-idl parameter to gen-introspect,
2319 and update the parser test.
2321 2007-12-08 Johan Dahlin <johan@gnome.org>
2323 * src/gen-introspect.c:
2324 Move main to the end of the file and attempt to make it valid
2327 * tests/parser/Makefile.am (BUILT_SOURCES): Remove .repo here,
2328 we're not quite ready to generate metadata yet.
2333 Add a simple gen-introspect parser test
2335 2007-12-06 Gustavo J. A. M. Carneiro <gjc@gnome.org>
2337 reviewed by: Johan Dahlin <johan@gnome.org>
2340 * gobject-introspection.pc.in:
2342 * src/compiler.c: (format_output), (write_out_metadata), (main):
2343 * src/gen-introspect.c: (main):
2344 * src/gen-introspect.h:
2345 * src/generate.c: (write_callable_info), (write_repository),
2346 (load_metadata), (main):
2347 * src/gidlmodule.c: (g_idl_module_new),
2348 (g_idl_module_build_metadata):
2350 * src/gidlparser.c: (start_element_handler):
2351 * src/ginfo.c: (g_info_new), (g_info_from_entry),
2352 (g_base_info_get_name), (g_base_info_get_namespace),
2353 (g_base_info_is_deprecated), (g_base_info_get_annotation),
2354 (g_base_info_get_metadata), (g_function_info_get_symbol),
2355 (g_function_info_get_flags), (g_function_info_get_property),
2356 (g_function_info_get_vfunc), (signature_offset), (g_type_info_new),
2357 (g_callable_info_may_return_null),
2358 (g_callable_info_get_caller_owns), (g_callable_info_get_n_args),
2359 (g_callable_info_get_arg), (g_arg_info_get_direction),
2360 (g_arg_info_is_return_value), (g_arg_info_is_dipper),
2361 (g_arg_info_is_optional), (g_arg_info_may_be_null),
2362 (g_arg_info_get_ownership_transfer), (g_type_info_is_pointer),
2363 (g_type_info_get_tag), (g_type_info_get_param_type),
2364 (g_type_info_get_interface), (g_type_info_get_array_length),
2365 (g_type_info_is_zero_terminated),
2366 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
2367 (g_error_domain_info_get_quark), (g_error_domain_info_get_codes),
2368 (g_value_info_get_value), (g_field_info_get_flags),
2369 (g_field_info_get_size), (g_field_info_get_offset),
2370 (g_registered_type_info_get_type_name),
2371 (g_registered_type_info_get_type_init),
2372 (g_struct_info_get_n_fields), (g_struct_info_get_field),
2373 (g_struct_info_get_n_methods), (g_struct_info_get_method),
2374 (find_method), (g_struct_info_find_method),
2375 (g_enum_info_get_n_values), (g_enum_info_get_value),
2376 (g_object_info_get_parent), (g_object_info_get_type_name),
2377 (g_object_info_get_type_init), (g_object_info_get_n_interfaces),
2378 (g_object_info_get_interface), (g_object_info_get_n_fields),
2379 (g_object_info_get_field), (g_object_info_get_n_properties),
2380 (g_object_info_get_property), (g_object_info_get_n_methods),
2381 (g_object_info_get_method), (g_object_info_find_method),
2382 (g_object_info_get_n_signals), (g_object_info_get_signal),
2383 (g_object_info_get_n_vfuncs), (g_object_info_get_vfunc),
2384 (g_object_info_get_n_constants), (g_object_info_get_constant),
2385 (g_interface_info_get_n_prerequisites),
2386 (g_interface_info_get_prerequisite),
2387 (g_interface_info_get_n_properties),
2388 (g_interface_info_get_property), (g_interface_info_get_n_methods),
2389 (g_interface_info_get_method), (g_interface_info_find_method),
2390 (g_interface_info_get_n_signals), (g_interface_info_get_signal),
2391 (g_interface_info_get_n_vfuncs), (g_interface_info_get_vfunc),
2392 (g_interface_info_get_n_constants),
2393 (g_interface_info_get_constant), (g_property_info_get_flags),
2394 (g_signal_info_get_flags), (g_signal_info_get_class_closure),
2395 (g_signal_info_true_stops_emit), (g_vfunc_info_get_flags),
2396 (g_vfunc_info_get_offset), (g_vfunc_info_get_signal),
2397 (g_constant_info_get_value), (g_union_info_get_n_fields),
2398 (g_union_info_get_field), (g_union_info_get_n_methods),
2399 (g_union_info_get_method), (g_union_info_is_discriminated),
2400 (g_union_info_get_discriminator_offset),
2401 (g_union_info_get_discriminator):
2402 * src/ginvoke.c: (g_function_info_invoke):
2403 * src/girepository.c: (g_irepository_register),
2404 (g_irepository_unregister), (g_irepository_get_default),
2405 (count_interfaces), (g_irepository_get_n_infos), (find_interface),
2406 (g_irepository_get_info), (g_irepository_find_by_name),
2407 (g_irepository_get_shared_library),
2408 (g_irepository_build_search_path), (g_irepository_register_file),
2409 (g_irepository_error_quark):
2410 * src/girepository.h:
2411 * src/gmetadata.c: (g_metadata_get_dir_entry),
2412 (g_metadata_check_sanity), (validate_header),
2413 (validate_array_type_blob), (validate_iface_type_blob),
2414 (validate_param_type_blob), (validate_error_type_blob),
2415 (validate_type_blob), (validate_arg_blob),
2416 (validate_signature_blob), (validate_function_blob),
2417 (validate_callback_blob), (validate_constant_blob),
2418 (validate_value_blob), (validate_field_blob),
2419 (validate_property_blob), (validate_signal_blob),
2420 (validate_vfunc_blob), (validate_struct_blob),
2421 (validate_enum_blob), (validate_object_blob),
2422 (validate_interface_blob), (validate_errordomain_blob),
2423 (validate_union_blob), (validate_blob), (validate_directory),
2424 (validate_annotations), (g_metadata_validate), (_g_metadata_init),
2425 (g_metadata_new_from_memory), (g_metadata_new_from_const_memory),
2426 (g_metadata_new_from_mapped_file), (g_metadata_free),
2427 (g_metadata_set_module), (g_metadata_get_namespace):
2429 * tests/Makefile.am:
2430 * tests/invoke/Makefile.am:
2431 * tests/invoke/invoke-namespace-find.sh:
2432 * tests/invoke/invoke.c: (main):
2434 Add a namespace/shared library mapping. fixes #313268.
2436 2007-12-03 Johan Dahlin <johan@gnome.org>
2438 * src/gidlparser.c (parse_type_internal): Disable char/gchar and
2441 2007-11-30 Jürg Billeter <j@bitron.ch>
2447 * src/gen-introspect.c: (g_idl_node_cmp), (g_igenerator_new),
2448 (g_igenerator_write_inline), (g_igenerator_write),
2449 (g_igenerator_write_indent), (g_igenerator_write_unindent),
2450 (field_generate), (value_generate), (constant_generate),
2451 (property_generate), (function_generate), (vfunc_generate),
2452 (signal_generate), (interface_generate), (struct_generate),
2453 (union_generate), (boxed_generate), (enum_generate),
2454 (node_generate), (module_generate), (get_type_from_type_id),
2455 (str_replace), (g_igenerator_process_properties),
2456 (g_igenerator_process_signals), (g_igenerator_process_types),
2457 (get_type_from_ctype), (g_igenerator_process_function_symbol),
2458 (g_igenerator_process_unregistered_struct_typedef),
2459 (g_igenerator_process_struct_typedef),
2460 (g_igenerator_process_union_typedef),
2461 (g_igenerator_process_enum_typedef),
2462 (g_igenerator_process_function_typedef),
2463 (g_igenerator_process_constant), (g_igenerator_process_symbols),
2464 (g_igenerator_add_symbol), (g_igenerator_is_typedef),
2465 (g_igenerator_generate), (main), (csymbol_new),
2466 (csymbol_get_const_boolean), (ctype_new), (ctype_copy),
2467 (cbasic_type_new), (ctypedef_new), (cstruct_new), (cunion_new),
2468 (cenum_new), (cpointer_new), (carray_new), (cfunction_new),
2469 (eat_hspace), (eat_line), (read_identifier),
2470 (g_igenerator_parse_macros):
2471 * src/gen-introspect.h:
2473 Import gen-introspect to generate introspection information by
2476 2007-11-30 Jürg Billeter <j@bitron.ch>
2478 * src/gidlnode.c: (g_idl_node_new): support creating callback nodes
2480 2007-11-30 Jürg Billeter <j@bitron.ch>
2482 * src/gidlparser.c: (end_element_handler): Don't leave requires
2485 2007-11-29 Johan Dahlin <johan@gnome.org>
2487 * src/gidlparser.c (parse_type_internal): Add char,
2488 gchar and guchar to the builtin types.
2490 2007-11-26 Johan Dahlin <johan@gnome.org>
2492 * src/ginfo.c: (g_object_info_get_type_name),
2493 (g_object_info_get_type_init):
2494 * src/girepository.c: (g_irepository_is_registered):
2495 * src/girepository.h:
2497 Add g_object_info_get_type_name, g_object_info_get_type_init and
2498 g_irepository_is_registered.
2500 2006-08-14 Jürg Billeter <j@bitron.ch>
2502 * src/gidlparser.c: (end_element_handler): Don't leave
2503 namespace and implements states too early.
2506 2007-11-26 Johan Dahlin <johan@gnome.org>
2508 * src/gmetadata.c (validate_struct_blob):
2509 pass blob_type to validate_function_blob instead of
2510 hard-coding BLOB_TYPE_STRUCT.
2512 Patch by Torsten Schoenfeld, fixes #314190
2514 2006-10-03 Torsten Schoenfeld <tsch@cvs.gnome.org>
2516 * src/compiler.c, src/generate.c, src/gidlnode.c,
2517 src/gidlparser.c, src/ginfo.c, src/girepository.c,
2518 tests/invoke/invoke.c, test/invoke/testfns.c: Hush compiler
2519 warnings about return values, signedness mismatches, unused
2520 variables, and unhandles enum values in switch statements.
2522 * tests/invoke/Makefile.am: Don't install the invoke test program.
2523 Add -I ../../src to the cflags used for the test functions files.
2525 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
2527 * src/girepository.h: Export g_invoke_error_quark.
2529 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
2531 * src/ginvoke.c: Remove the fallback implementation of
2532 g_function_info_invoke since we now formally depend on libffi.
2534 2005-07-25 Matthias Clasen <mclasen@redhat.com>
2536 * src/Makefile, tests/Makefile, tests/invoke/Makefile:
2537 Remove these files from cvs, as they are now generated.
2539 * src/gmetadata.c (validate_iface_type_blob): Don't
2540 complain if blob->pointer is not set, since that
2541 happens for enum and flag types. (#308935, Gustavo
2544 * Commit an autoconf-conversion patch by
2545 Gustavo Carneiro (#308708)
2547 2005-05-24 Matthias Clasen <mclasen@redhat.com>
2549 * src/compiler.c (main): Use it here to validate
2550 the generated metadata.
2552 * src/gmetadata.[hc]: Add code to validate a
2555 * metadata-format.txt: Updates
2557 2005-05-22 Matthias Clasen <mclasen@redhat.com>
2559 * tests/*: Add struct offsets to field and vfunc
2562 * src/generate.c (write_vfunc_info): Write offset
2563 information for vfuncs.
2565 * src/gidlnode.c (g_idl_node_build_metadata): Write
2566 the struct offsets into the metadata.
2568 * src/gidlparser.c: Parse the offset attributes of
2569 field and vfunc elements.
2571 * src/gidlnode.h: Add offset members to field and
2574 2005-05-21 Matthias Clasen <mclasen@redhat.com>
2578 * gidl.dtd: Updates.
2580 * src/g-idl-offsets.pl: A perl script which reads a .gidl
2581 file, creates, compiles and runs a C file, and folds the
2582 resulting struct offsets back into the .gidl file.
2584 2005-05-20 Matthias Clasen <mclasen@redhat.com>
2586 * src/gidlparser.c (start_field): Make fields in objects
2589 * src/gidlmodule.c: Include string.h
2594 * metadata-format.txt: Cleanup basic types.
2595 * src/*: Adapt to the changes.
2596 * tests/*: Adapt to the changes.
2597 * examples/gdk-pixbuf.gidl: Adapt to the changes.
2599 * src/gidlnode.c (g_idl_node_get_size): Report the correct
2600 size for enum blobs.
2601 (g_idl_node_get_full_size): Report the correct size for
2604 * src/gidlmodule.c (g_idl_module_build_metadata): Add some
2605 error checking for blob sizes.
2607 2005-05-19 Matthias Clasen <mclasen@redhat.com>
2609 * src/gidlnode.c (g_idl_node_build_metadata): Correctly handle
2610 interface types for which is_pointer is FALSE, e.g. enums.
2612 * src/gidlnode.c (g_idl_node_get_full_size)
2613 * src/gidlparser.c (parse_type_internal):
2614 * src/generate.c (write_type_info): Support unspecialized
2615 lists, hashtables and errors. Also emit a '*' after these.
2619 2005-05-17 Matthias Clasen <mclasen@redhat.com>
2623 * metadata-format.txt: Cleanups by Maciej Katafiasz.
2625 2005-05-15 Matthias Clasen <mclasen@redhat.com>
2627 * src/*.c: Change the directory to be addressed by
2628 1-based indexes, and use an index of zero to mean
2631 2005-05-15 Matthias Clasen <mclasen@redhat.com>
2633 * tests/roundtrips.sh (SIMPLE_TESTS): Add union.test.
2635 * tests/union.test: Add a union test.
2637 * src/generate.c: Handle unions.
2639 * src/girepository.h:
2640 * src/ginfo.c: Add GIUnionInfo and functions to access it.
2642 * src/gidlnode.c: Handle GIdlNodeUnion nodes.
2644 * src/gidlparser.c (start_union): Parse <union> elements.
2646 * src/gidlnode.h: Add a GIdlNodeUnion.
2648 * gidl.dtd: Add a <union> element.
2650 * src/gmetadata.c (g_metadata_check_sanity): Check
2653 * src/gmetadata.h: Add union_blob_size to Header,
2656 * metadata-format.txt: Add a UnionBlob.
2658 2005-05-13 Matthias Clasen <mclasen@redhat.com>
2660 * tests/*: Update testcases.
2662 * src/generate.c (write_callable_info): Don't forget to
2663 write transfer and null-ok attributes for return types
2666 * src/girepository.h:
2667 * src/ginfo.c (g_callable_info_may_return_null):
2668 New function to find out if a function may return NULL.
2670 * src/compiler.c (format_output): Make the generated
2673 * README: Point to a recent libffi snapshot.
2675 * tests/invoke/*: Some invoke tests.
2677 * src/Makefile: Add ginvoke.c and the necessary
2680 * src/girepository.h (g_function_info_invoke): Add
2683 * src/ginvoke.c (g_function_info_invoke): Initial
2684 implementation of invoke functionality based on libffi.
2686 * src/gidlnode.c (g_idl_node_build_metadata): Pass the
2687 strings and types hash tables in the right order when
2689 (find_entry_node): Free the name parts.
2691 2005-05-12 Johan Dahlin <johan@gnome.org>
2693 * src/generate.c: Generate consistent end tags.
2697 2005-05-12 Matthias Clasen <mclasen@redhat.com>
2701 * src/gidlparser.c (start_function): Actually add
2702 methods to objects. (Steven Walter)
2704 * src/girepository.h:
2705 * src/ginfo.c: Rename Transfer and Direction to
2706 GITransfer and GIDirection. (Torsten Schoenfeld)
2708 * tests/*: Make tests work with the changes in name
2711 * src/gidlnode.c (find_entry_node): Parse qualified
2712 names and generate xref nodes for them if needed. Don't
2713 require all modules to be loaded any more.
2715 * src/gidlmodule.c (g_idl_module_build_metadata): Choke
2718 * src/ginfo.c (g_object_info_get_parent): Return NULL
2719 if blob->parent is 0. Still need to make sure index
2722 * src/generate.c: Generate qualified names when
2723 referring to non-local types. Emit transfer attribute
2726 * src/compiler.c (format_output): Put the function
2727 attributes where gcc accepts them.
2729 2005-05-11 Matthias Clasen <mclasen@redhat.com>
2731 * src/compiler.c (main): Add a --verbose cmdline option
2732 and only log messages if it is specified.
2735 * src/gidlnode.c (init_stats, dump_stats): Collect some
2736 statistics on string and type sharing.
2738 * src/gidlmodule.c (g_idl_module_build_metadata): Use
2739 g_message() instead of fprintf().
2741 * src/gidlnode.c (g_idl_node_free): Make this more robust.
2742 (g_idl_node_get_size): Implement for structs.
2743 (g_idl_node_get_full_size): Handle parent being NULL.
2744 (serialize_type): Handle lookup failures more gracefully.
2746 2005-05-10 Matthias Clasen <mclasen@redhat.com>
2748 * src/gidlnode.c (g_idl_node_get_full_size): Correct the
2749 size calculation for 2-parameter types and for objects.
2751 * src/compiler.c: Add a cmdline option for debug output
2752 and install a log handler to implement it.
2753 * src/gidlnode.c: Add some debug spew.
2757 * src/gidlmodule.c (g_idl_module_build_metadata): Don't
2758 forget to count the module name when calculating the
2759 required size for the metadata.
2762 * src/gidlparser.c: Fix compiler warnings.
2764 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2766 * src/compiler.c (main): Free the option context.
2768 * gidl.dtd: Clean up handling of names. All elements
2769 have a "name", only the elements corresponding to
2770 actual callable functions (function, method, constructor),
2771 have an additional "symbol" attribute holding the
2772 dlsym()-able function name.
2774 * src/generate.c: Adapt to generate xml matching the
2778 * src/gidlnode.c: Adapt to parse the new dtd.
2780 * tests/*.test: Adjust to the new dtd.
2782 * metadata-format.txt:
2783 * src/gmetadata.h: Remove the short_name field
2785 * src/gmetadata.c: Shrink size of ValueBlob to 12.
2786 * src/girepository.h:
2787 * src/ginfo.c (g_value_info_get_short_name): Removed
2789 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2791 * gidl.dtd: Allow constructors for boxed types,
2792 patch by Jonathan Blandford.
2795 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2797 * --- Initial import ---