1 2008-08-20 Colin Walters <walters@verbum.org>
3 * girepository/girepository.c: Add new function
4 g_irepository_get_typelib_path which tells
5 us from where we loaded a namespace.
7 2008-08-20 Colin Walters <walters@verbum.org>
9 * tests/scanner/*-expected.gir: Adjust for
11 * giscanner/giwriter.py: Make pylint happy.
13 2008-08-20 Colin Walters <walters@verbum.org>
15 * girepository/girmodule.c (g_ir_module_build_typelib):
16 Calculate size correctly, avoid use-after-free.
18 2008-08-20 Colin Walters <walters@verbum.org>
20 * girepository/girepository.c: Remove
21 g_irepository_register_file in favor of
22 g_irepository_require. There are two
23 possible deployment scenarios for typelibs:
24 First, separate in $DATADIR/gitypelibs/. Second,
25 they may be embedded in shlibs. However since
26 the first is now the normal case, the API is
29 Refactor internals to look up typelibs for
30 namespaces just-in-time, but we expect
31 consumers to call g_irepository_require.
33 Also, add some docs. No one has died from that
35 * gir/Makefile.am: Need --library for glib.
36 * giscanner/girwriter.py: Write out shared-library.
37 * tools/g-ir-writer: Take the first --library
38 argument as the target of shared-library. In
39 the future we should make this nicer with pkg-config
42 2008-08-20 Colin Walters <walters@verbum.org>
44 * girepository/girparser.py: And parse them.
46 2008-08-20 Johan Dahlin <johan@gnome.org>
48 * giscanner/glibast.py: Add gshort/gushort types
50 2008-08-20 Colin Walters <walters@verbum.org>
52 * gir/Makefile.am: Rename .gir files using GI namespace.
53 * girepository/girepository.c: Use XDG_DATA_DIRS for
54 looking up typelibs. Also typelibs are now suffixed
56 * tests/invoke/Makefile.am: Only use metadata.
57 * girepository/Makefile.am: Remove unnecessary include.
58 * tests/scanner/Makefile.am: Update using GI namespaces
61 2008-08-20 Colin Walters <walters@verbum.org>
63 * girepository/transformer.py: Suppress aliases whose
65 * girepository/ast.py: Define some more aliases.
67 2008-08-20 Colin Walters <walters@verbum.org>
69 * girepository/girparser.c: Avoid alias infloops.
71 2008-08-20 Colin Walters <walters@verbum.org>
73 * tests/scanner/foo-expected.gir: Fix expected list type.
75 2008-08-20 Johan Dahlin <johan@gnome.org>
77 * giscanner/glibtransformer.py (GLibTransformer._resolve_type_name):
78 Add a workaround for #548689.
79 We can now compile gtk!
81 2008-08-20 Colin Walters <walters@verbum.org>
83 * giscanner/glibtransformer.py: Try to look up
84 aliases using the c:type too.
86 2008-08-20 Colin Walters <walters@verbum.org>
88 * girepository/girparser.c: Parse union fields.
90 2008-08-20 Johan Dahlin <johan@gnome.org>
92 * giscanner/ast.py: Make time_t an alias for long
94 * gir/gio-2.0-good.gir:
95 * gir/glib-2.0-good.gir:
96 * gir/gobject-2.0-good.gir:
98 * giscanner/glibtransformer.py:
99 Do not delete Class structures, we need them in gdk/gtk.
100 * tests/scanner/drawable-expected.gir:
101 * tests/scanner/foo-expected.gir:
102 * tests/scanner/utility-expected.gir:
105 2008-08-20 Johan Dahlin <johan@gnome.org>
107 * tests/scanner/Makefile.am:
108 * tests/scanner/annotation-expected.gir:
109 * tests/scanner/annotation.c (annotation_object_class_init),
110 (annotation_object_init), (annotation_object_method),
111 (annotation_object_in), (annotation_object_out),
112 (annotation_object_inout), (annotation_object_inout2),
113 (annotation_object_inout3), (annotation_object_calleeowns),
114 (annotation_object_calleesowns), (annotation_object_get_strings),
115 (annotation_object_with_voidp), (annotation_object_get_objects),
116 (annotation_object_create_object), (annotation_object_allow_none):
117 * tests/scanner/annotation.h:
118 * tests/scanner/foo-expected.gir:
119 * tests/scanner/foo.c:
120 * tests/scanner/foo.h:
121 Split out annotation tests out of foo
123 2008-08-20 Johan Dahlin <johan@gnome.org>
125 * tests/scanner/Foo-expected.gir:
126 * tests/scanner/Makefile.am:
127 * tests/scanner/foo-expected.gir:
128 * tests/scanner/foo-object.h:
129 * tests/scanner/foo.c:
130 Foo->foo, foo-object.h -> foo.h
132 2008-08-20 Johan Dahlin <johan@gnome.org>
134 * tests/scanner/Foo-expected.gir:
135 * tests/scanner/Makefile.am:
136 * tests/scanner/drawable-expected.gir:
137 * tests/scanner/drawable.c (test_drawable_class_init),
138 (test_drawable_init):
139 * tests/scanner/drawable.h:
140 * tests/scanner/foo-object.h:
141 * tests/scanner/foo.c (foo_boxed_method):
142 Move the drawable parts out of Foo to its own test.
144 2008-08-20 Johan Dahlin <johan@gnome.org>
146 * tests/scanner/Foo-expected.gir:
147 * tests/scanner/foo-object.h:
148 * tests/scanner/foo.c (foo_drawable_class_init),
150 Add a based on GdkDrawable which generates
153 2008-08-19 Colin Walters <walters@verbum.org>
155 * giscanner/transformer.py: Don't try
156 to strip prefix before namespace.
158 2008-08-19 Johan Dahlin <johan@gnome.org>
160 * giscanner/transformer.py:
161 * tests/scanner/Foo-expected.gir:
162 * tests/scanner/foo-object.h:
163 Add support for typedef void foo type of
166 2008-08-19 Johan Dahlin <johan@gnome.org>
169 * giscanner/girwriter.py:
170 * giscanner/glibtransformer.py:
171 * giscanner/transformer.py:
172 * tests/scanner/Foo-expected.gir:
173 Add basic support for union, base the code much
174 on Struct. Add a testcase.
176 2008-08-19 Johan Dahlin <johan@gnome.org>
178 * tests/scanner/Foo-expected.gir:
179 * tests/scanner/foo-object.h:
180 Add a union testcase which the compiler currently
183 2008-08-19 Johan Dahlin <johan@gnome.org>
185 * gobject-introspection-1.0.pc.in:
186 Add a g_ir_compiler variable
188 2008-08-19 Colin Walters <walters@verbum.org>
190 * giscanner/ast.py: Rework types to be more closely
192 * giscanner/girparser.py: Parse more bits.
193 * giscanner/girwriter.py: Write sequences in a new
194 way that specifies container type.
195 * giscanner/glibast.py: Adjust for ast.py changes,
196 add 'ctype' property to GLibObject and GLibInterface
197 so we can look things up by it later.
198 * gicanner/transformer.py: Names is new class holding
199 the various namespaces we manage. Do not confuse
200 with Namespace which is toplevel XML node effectively.
201 Rework all type resolution to go through
202 _resolve_type_name_1.
203 * giscanner/glibtransformer.py: Raise UnknownTypeError
204 instead of ValueError for cleanliness. Add Unresolved
205 class to mark types whose parent we haven't seen yet.
206 Use new Names object from transformer.py.
207 Correctly look up parent=.
208 Fix type validation to handle sequences.
209 * tests/scanner/Foo-expected.gir: Update for sequence
210 work, int instead of int32.
211 * tools/g-ir-scanner: Add --noclosure option
212 * gir/Makefile.am: Use --noclosure by default for
215 2008-08-18 Johan Dahlin <johan@gnome.org>
217 * gir/gio-2.0-good.gir:
218 * gir/glib-2.0-good.gir:
219 * gir/gobject-2.0-good.gir:
222 2008-08-18 Johan Dahlin <johan@gnome.org>
225 * giscanner/girparser.py:
226 * giscanner/girwriter.py:
227 * giscanner/glibast.py:
228 * giscanner/glibtransformer.py:
229 * giscanner/transformer.py:
230 * tests/scanner/Foo-expected.gir:
231 * tests/scanner/foo-object.h:
232 * tests/scanner/utility-expected.gir:
233 * tests/scanner/utility.h:
234 Redo type resolving and validation.
235 Add a couple of new tests.
236 Patch mostly written by Colin.
238 2008-08-18 Johan Dahlin <johan@gnome.org>
241 * giscanner/girparser.py:
243 * giscanner/transformer.py:
244 Improve enum parsing for enums without a GType.
245 Make flags/enum references to other girs work
246 * giscanner/utils.py:
248 * tests/scanner/Makefile.am:
249 * tests/scanner/foo-object.h:
250 * tests/scanner/utility-expected.gir:
251 * tests/scanner/utility.h:
252 Add a new test for external enum references
254 2008-08-18 Johan Dahlin <johan@gnome.org>
256 * docs/global-module-registry.txt: Update
258 * tests/array.gir: Update with new type proposal
260 * girepository/girepository.c (g_type_tag_to_string):
261 * girepository/girepository.h:
262 * girepository/girnode.c (g_ir_node_get_full_size_internal),
264 * girepository/girnode.h:
265 Make enum serializing functions public. Clean up some whitespace.
267 2008-08-17 Johan Dahlin <johan@gnome.org>
269 * docs/global-module-registry.txt:
270 Add a document for an on disk module registry format
272 2008-08-17 Johan Dahlin <johan@gnome.org>
275 * gir/gio-2.0-good.gir:
278 2008-08-17 Johan Dahlin <johan@gnome.org>
281 * gir/glib-2.0-good.gir:
282 * gir/gobject-2.0-good.gir:
283 * giscanner/cgobject.py:
284 * giscanner/glibtransformer.py:
285 Regenerate GObject & GType.
286 Avoid warnings when generating gobject-2.0.gir.
287 Introspect a little more, and skip *_get_type functions.
289 2008-08-17 Colin Walters <walters@verbum.org>
291 * gir/glib-2.0.gir, gir/gobject-2.0.gir:
292 Rename to -good, always generate during build.
293 * gir/Makefile.am: Ensure .gir files dep on
295 * Makefile.am: Switch build order to ensure
296 the scanner is ready before we do gir/.
297 * tools/g-ir-scanner: Look for .git too.
299 2008-08-17 Johan Dahlin <johan@gnome.org>
301 * girepository/gtypelib.c (validate_enum_blob):
302 * giscanner/glibtransformer.py:
303 * giscanner/transformer.py:
304 Remove resolve_possible_typedefs, it was unused.
305 Allow multiple enum values of the sample value in an enum,
306 since it's actually pretty common.
307 Register enums so they can be resolved too.
309 2008-08-16 Johan Dahlin <johan@gnome.org>
311 * giscanner/girparser.py:
312 Parse enumeration/bitfield.
314 2008-08-16 Johan Dahlin <johan@gnome.org>
316 * giscanner/girparser.py:
319 2008-08-16 Johan Dahlin <johan@gnome.org>
321 * giscanner/glibtransformer.py:
322 Resolve type names for alias targets
323 * giscanner/transformer.py:
324 Skip FILE* parameters fow now
326 2008-08-16 Johan Dahlin <johan@gnome.org>
329 * gir/gobject-2.0.gir:
332 * tests/scanner/Makefile.am:
335 2008-08-15 Colin Walters <walters@verbum.org>
337 * giscanner/glibtransformer.py: Explicitly construct
338 new list, since we're deleting as we iterate.
339 Don't delete all structures which end in Class; just
340 ones which have a paired GObject.
341 Fix printing of type warning.
342 * giscanner/transformer.py: Make strip_namespace_object
343 be the identity function if it doesn't match the
346 2008-08-15 Colin Walters <walters@verbum.org>
348 * giscanner/cgobject.py: Define yet more argument
349 prototypes; fix prototype for g_type_fundamental.
351 2008-08-14 Johan Dahlin <johan@gnome.org>
354 * tests/constant.gir:
357 * tools/generate.c (write_struct_info):
358 Fix generator for constant/gobject/struct
360 2008-08-14 Johan Dahlin <johan@gnome.org>
364 * tools/generate.c (write_enum_info):
365 Fix generation of enum/bitfields
367 2008-08-14 Johan Dahlin <johan@gnome.org>
369 * girepository/girparser.c (start_field), (start_constant),
370 (start_type), (end_element_handler):
371 Clear up constant parsing
376 * tools/generate.c (write_callable_info), (write_function_info),
377 (write_callback_info), (write_constant_info), (write_signal_info),
378 (write_vfunc_info), (write_property_info), (write_object_info),
379 (write_interface_info):
380 Constants/Signals are handled now.
382 2008-08-14 Johan Dahlin <johan@gnome.org>
384 * girepository/girparser.c (start_type):
385 Don't require c:type.
389 Update, remove parts we don't support yet
390 * tests/roundtrips.sh:
392 * tools/generate.c (write_type_info), (write_field_info),
393 (write_callable_info), (write_struct_info):
394 Make it emit proper gir.
396 2008-08-14 Johan Dahlin <johan@gnome.org>
398 * giscanner/transformer.py:
399 New internal function for adding a new node.
401 2008-08-14 Johan Dahlin <johan@gnome.org>
404 Define an internal _H_ variable so we skip parsing both
405 i18n headers, only one is needed.
407 Add the glib-2.0.gir too.
408 * giscanner/glibast.py:
409 Add gconstpointer as an alias for ANY
410 * giscanner/transformer.py:
411 Do not lower case enumeration names per se.
412 Skip functions which has parameters called 'va_list'
414 2008-08-14 Colin Walters <walters@verbum.org>
416 * giscanner/transformer.py: Comment data structures.
417 Also squash pointers in resolve_type_name to correspond
418 with what we do for params.
419 * giscanner/glibtransformer.py: Print warnings in more
420 situations. Rework checks for method/constructor to
421 look up in our GType database instead of just checking
422 for *. Avoid generating <record> for GObject which
423 duplicate the <class>.
424 * gir/Makefile.am: Generate glib-2.0.gir and gobject-2.0.gir
427 2008-08-14 Johan Dahlin <johan@gnome.org>
429 * giscanner/girwriter.py:
430 * giscanner/glibast.py:
431 * giscanner/glibtransformer.py:
432 * giscanner/transformer.py:
435 Add pyflakes.py and run it in make check.
436 Update the source code to fix the errors reported by
439 2008-08-14 Johan Dahlin <johan@gnome.org>
442 * giscanner/girparser.py:
443 * giscanner/glibast.py:
444 * giscanner/glibtransformer.py:
445 Refactor the parser a bit.
446 Add parent type to interfaces and update callsites.
448 2008-08-14 Johan Dahlin <johan@gnome.org>
450 * giscanner/glibtransformer.py:
451 * giscanner/utils.py:
452 Refactor a bit, avoid isinstance and add a method
453 for each type we parse.
455 2008-08-14 Johan Dahlin <johan@gnome.org>
458 * giscanner/girparser.py:
459 * giscanner/glibtransformer.py:
461 Run pep8.py in make check, fix old errors.
463 2008-08-13 Colin Walters <walters@verbum.org>
465 * giscanner/girparser.py: Parse records.
467 2008-08-13 Colin Walters <walters@verbum.org>
469 * gir/Makefile.am: Install again.
470 * gir/gobject-2.0.gir: Add some more bits.
472 2008-08-13 Colin Walters <walters@verbum.org>
474 * gir/gobject-2.0.gir: Use correct namespace, add GType.
475 * giscanner/girparser.py: Handle aliases.
476 * giscanner/transformer.py: Record aliases. Make resolver
477 functions public; we now call into these explicitly from
478 glibtransformer. Handle resolving aliases.
479 * giscanner/glibtransformer.py: Separate our internal namespace
480 from included ones. Call up into transformer's resolver functions.
482 2008-08-13 Johan Dahlin <johan@gnome.org>
484 * girepository/girnode.c (g_ir_node_get_full_size_internal):
485 * girepository/girparser.c (start_class):
486 * giscanner/glibtransformer.py:
487 Allow get_type to be None, set a get_type for GInitiallyUnowned too.
489 2008-08-13 Johan Dahlin <johan@gnome.org>
491 * giscanner/cgobject.py:
492 Register GInitiallyUnowned
493 * giscanner/girwriter.py:
494 * giscanner/glibtransformer.py:
495 Special case GObject/GInitially owned as they are a bit special to use.
497 2008-08-13 Colin Walters <walters@verbum.org>
499 * tests/scanner/Foo-expected.gir, tests/scanner/utility-expected.gir:
500 Object is in GObject namespace.
502 2008-08-13 Colin Walters <walters@verbum.org>
504 * giscanner/girparser.py: Fix processing of functions
507 2008-08-13 Colin Walters <walters@verbum.org>
509 * giscanner/girparser.py: Parse more than just <class.
510 * giscanner/glibtransformer.py: Put aliases in a separate
511 data structure since their name is not canonicall.
512 * giscanner/transformer.py: Handle resolving type names
515 2008-08-13 Johan Dahlin <johan@gnome.org>
517 * tools/g-ir-scanner:
518 Allow multiple libraries
519 * giscanner/glibtransformer.py:
520 Rename load_library to add_library, traverse over all libraries
521 when trying to resolve a function
523 2008-08-12 Colin Walters <walters@verbum.org>
525 * giscanner/transformer.py: Record typedefs as <alias> elements.
526 Also attempt to look up types in external namespaces.
527 * giscanner/girwriter.py: Write them.
528 * giscanner/glibtransformer.py: Rework resolver using real instanceof
529 checks. Resolve interface methods and properties.
530 * tests/scanner/foo-object.h: Add a method with typedef.
531 * tests/scanner/Foo-expected.gir: Update.
532 * girepository/girnode.c: Debug tweaks.
533 * girepository/girparser.c: Make a first pass through the XML where we
534 record all the aliases. This lets us resolve them as we go through the
536 * gir/Makefile.am: Don't install gobject-2.0.gir; we want that to come
539 2008-08-12 Colin Walters <walters@verbum.org>
541 * giscanner/glibtransformer.py: Resolve typedefs (e.g. AtkAttributeSet -> GSList).
542 Correctly do subclasseing in 2nd pass resolution. Handle callbacks in structure
544 * giscanner/transformer.py: Record typedefs and expose public API for resolving
546 * tests/scanner/Foo-expected.gir: Fix expected callback types.
548 2008-08-12 Colin Walters <walters@verbum.org>
550 * giscanner/glibtransformer.py: Also transform object properties.
552 2008-08-12 Colin Walters <walters@verbum.org>
554 * giscanner/glibtransformer.py: Also transform callbacks
555 and structure field types.
556 * tests/scanner/Fooe-expected.gir: Update to expect correct
557 names for callbacks and structs.
559 2008-08-12 Colin Walters <walters@verbum.org>
561 * girepository/girparser.c: Handle 'any'.
562 * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
565 2008-08-12 Colin Walters <walters@verbum.org>
567 * giscanner/glibtransformer.py: We need to do type
568 resolution in a second pass after we've seen all the
571 2008-08-12 Colin Walters <walters@verbum.org>
573 * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
574 Add enum return value.
575 * giscanner/glibtransformer.py: Transform function return types
578 2008-08-12 Colin Walters <walters@verbum.org>
580 * tests/scanner/Makefile.am: Dep .gir files on scanner
581 sources too. Also remove @ so we see scanner invocations.
583 2008-08-12 Colin Walters <walters@verbum.org>
585 * girepository/girparser.c, girepository/gtypelib.c,
586 girepository/gtypelib.h, girepository/girnode.c:
587 Remove usage of (GAPI-oriented) TypeTag in favor of
588 GITypeTag from girepository.h.
590 2008-08-10 Colin Walters <walters@verbum.org>
592 * tests/roundtrips.sh: Use the correct tests.
594 2008-08-10 Colin Walters <walters@verbum.org>
596 * giscanner/cgobject.py: Declare/wrap a few more functions.
597 Fix parameter types for g_object_new and g_type_fundamental.
599 2008-08-10 Colin Walters <walters@verbum.org>
601 * giscanner/cgobject.py: Add new decorator @gwrap which forces
602 us to declare types for both return value and parameters. The
603 ctypes default of 'int' is bad because it hides 32/64 bit
604 problems. Convert all existing functions to use it.
606 2008-08-09 Johan Dahlin <johan@gnome.org>
608 * giscanner/__init__.py:
610 * giscanner/cgobject.py:
611 * giscanner/gidlparser.py:
612 * giscanner/gidlwriter.py:
613 * giscanner/girparser.py:
614 * giscanner/girwriter.py:
615 * giscanner/glibast.py:
616 * giscanner/glibtransformer.py:
617 * giscanner/odict.py:
618 * giscanner/sourcescanner.py:
619 * giscanner/transformer.py:
620 * giscanner/utils.py:
621 * giscanner/xmlwriter.py:
622 * tools/g-ir-scanner:
626 2008-08-09 Johan Dahlin <johan@gnome.org>
629 * relaxng/c-types.xml:
630 * relaxng/g-types.xml:
631 * relaxng/relaxng.rng:
633 Remove outdated relaxng schemas.
635 2008-08-09 Johan Dahlin <johan@gnome.org>
638 Rename metadata to typelib in variable names,
641 2008-08-09 Johan Dahlin <johan@gnome.org>
645 Remove old C scanner, which got rewritten in python.
647 2008-08-09 Johan Dahlin <johan@gnome.org>
649 * girepository/Makefile.am:
659 Move shared *.[ch] files to girepository from tools
661 2008-08-09 Johan Dahlin <johan@gnome.org>
666 * tests/constant.test:
669 * tests/function.test:
670 * tests/gobject.test:
671 * tests/interface.test:
678 Rename *.test to *.gir
680 2008-08-09 Johan Dahlin <johan@gnome.org>
684 * tests/parser/Foo-expected.gir:
685 * tests/parser/Makefile.am:
686 * tests/parser/foo-object.h:
687 * tests/parser/foo.c:
688 * tests/parser/utility-expected.gir:
689 * tests/parser/utility.c:
690 * tests/parser/utility.h:
691 * tests/scanner/Makefile.am:
692 Rename tests/parser to test/scanner
694 2008-08-08 Colin Walters <walters@verbum.org>
696 * tests/roundtrips.sh: Use local .gir files again.
698 2008-08-08 Colin Walters <walters@verbum.org>
700 * tests/invoke/Makefile.am: .gir file depends on libtool
703 2008-08-08 Colin Walters <walters@verbum.org>
705 * tools/girnode.c: Pass through parent node so we can
706 print the node whose child is NULL, if that occurs.
708 2008-08-08 Johan Dahlin <johan@gnome.org>
711 Disable roundtrip tests which are not yet working
712 * tests/invoke/testfns.gir:
715 2008-08-08 Johan Dahlin <johan@gnome.org>
717 * giscanner/girwriter.py:
719 * giscanner/glibast.py:
720 * giscanner/glibtransformer.py:
721 Swap order of members, to keep it consistent with
724 2008-08-08 Johan Dahlin <johan@gnome.org>
726 * girepository/gtypelib.c (validate_header):
727 * girepository/gtypelib.h:
729 * giscanner/girwriter.py:
730 * giscanner/sourcescanner.c (gi_source_symbol_ref),
731 (gi_source_symbol_unref):
734 * tests/constant.test:
737 * tests/function.test:
738 * tests/gobject.test:
739 * tests/interface.test:
740 * tests/invoke/Makefile.am:
741 * tests/invoke/testfns.xml:
743 * tests/parser/Makefile.am:
744 * tests/roundtrips.sh:
751 * tools/compiler.c (main):
752 * tools/generate.c (write_callable_info), (write_function_info),
754 * tools/gidlmodule.c:
755 * tools/gidlmodule.h:
758 * tools/gidlparser.c:
759 * tools/gidlparser.h:
760 * tools/gidlwriter.c:
761 * tools/gidlwriter.h:
762 * tools/scanner.c (create_node_from_gtype),
763 (create_node_from_ctype), (g_igenerator_process_properties),
764 (g_igenerator_process_signals), (g_igenerator_create_object),
765 (g_igenerator_create_interface), (g_igenerator_create_boxed),
766 (g_igenerator_create_enum), (g_igenerator_create_flags),
767 (g_igenerator_process_function_symbol),
768 (g_igenerator_process_unregistered_struct_typedef),
769 (g_igenerator_process_struct_typedef),
770 (g_igenerator_process_union_typedef),
771 (g_igenerator_process_enum_typedef),
772 (g_igenerator_process_function_typedef),
773 (g_igenerator_process_constant), (g_igenerator_process_symbols),
774 (g_igenerator_add_module), (g_igenerator_add_include_idl):
775 Merge in the gir-compiler branch.
776 Thanks to Philip and Colin for their help.
778 2008-07-26 Colin Walters <walters@verbum.org>
780 * tools/Makefile.am (bin_PROGRAMS): Install g-idl-compiler
781 and g-idl-generate to go along with how we're changing this
782 module to be installed.
783 * gobject-introspection-1.0.pc.in: Set up Cflags and Libs.
785 2008-07-24 Colin Walters <walters@verbum.org>
787 * girepository/girepository.c (g_irepository_register): Add
788 environment variable G_IREPOSITORY_VERBOSE so we can print
789 out what we're doing.
790 * girepository/girepository.c (g_irepository_register_file):
791 Add GError error message to g_debug call.
793 2008-07-08 Jürg Billeter <j@bitron.ch>
795 * giscanner/glibast.py:
799 2008-06-21 Johan Dahlin <jdahlin@async.com.br>
801 * giscanner/girparser.py (GIRParser._parse_api): Ignore a few
804 2008-06-20 Johan Dahlin <jdahlin@async.com.br>
807 * giscanner/girwriter.py:
808 * giscanner/transformer.py:
809 * tests/parser/Foo-expected.gir:
810 * tests/parser/foo-object.h:
811 * tests/parser/foo.c (foo_object_allow_none):
812 Add support for gtk-doc annotations for allow-none.
815 2008-06-19 Johan Dahlin <jdahlin@async.com.br>
818 * giscanner/girwriter.py:
819 * giscanner/glibast.py:
820 * giscanner/glibtransformer.py:
821 * giscanner/transformer.py:
822 * tests/parser/Foo-expected.gir:
823 Start using abstract type instead of the raw C types.
824 Register a bunch of glib types we care about.
826 2008-06-19 Rob Taylor <rob.taylor@codethink.co.uk>
831 2008-06-08 Philip Van Hoof <pvanhoof@gnome.org>
833 * girepository/girepository.c:
834 * girepository/gtypelib.c:
835 * girepository/ginfo.c:
836 * girepository/ginvoke.c:
837 * girepository/girepository.h:
838 * girepository/gtypelib.h:
839 * girepository/gmetadata.c:
840 * girepository/Makefile.am:
841 * girepository/gmetadata.h:
843 * tools/gidlmodule.c:
846 * tools/gidlmodule.h:
847 * tools/gidlparser.c:
849 Renamed GMetadata to GTypelib
851 2008-06-07 Johan Dahlin <jdahlin@async.com.br>
853 * giscanner/xmlwriter.py:
854 Improve line wrapping when > 79 charaters
856 2008-06-05 Jürg Billeter <j@bitron.ch>
859 * giscanner/girwriter.py:
860 * giscanner/transformer.py:
861 Use <type> element for field types
862 * tests/parser/Foo-expected.gir:
865 2008-06-04 Johan Dahlin <jdahlin@async.com.br>
867 * giscanner/glibtransformer.py:
868 Fix a bug which prevented GdkEvent from being generated
870 2008-06-03 Johan Dahlin <jdahlin@async.com.br>
872 * giscanner/Makefile.am:
874 * giscanner/girwriter.py:
875 * giscanner/glibast.py:
876 * giscanner/glibtransformer.py:
877 * giscanner/transformer.py:
878 * giscanner/utils.py:
879 * tests/parser/Foo-expected.gir:
880 Improve enum member parsing and introspection
882 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
884 * giscanner/scannerparser.y:
885 * giscanner/sourcescanner.h:
886 * giscanner/sourcescanner.py:
887 Add a new source type enum for member.
888 Use __repr__ for improved debugging
889 * giscanner/girparser.py:
891 * giscanner/transformer.py:
892 Improve parsing of struct members.
893 * tests/parser/foo-object.h:
896 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
898 * giscanner/xmlwriter.py:
899 Improve error reporting when trying to quote None.
900 * giscanner/girparser.py:
901 Do not print warnings when including more complete .gir files
902 * giscanner/girwriter.py:
903 Do not require a name for parameters, add a todo for singletons
904 * giscanner/glibtransformer.py:
905 Refactor the way structs are done, add a couple of hacks to allow
907 * giscanner/transformer.py:
908 Add enough hacks so cairo, atk and pango.gir can be parsed properly
909 * gobject-introspection-1.0.pc.in:
910 Export girdir, so we can access gobject-2.0.gir from outside
912 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
914 * tools/g-ir-scanner:
915 * tests/parser/Makefile.am:
916 Update sys.path before running the parser so we don't have
917 to setup PYTHONPATH ourselves.
921 * girepository/Makefile.am:
922 * giscanner/transformer.py:
923 * gobject-introspection-1.0.pc.in:
924 * gobject-introspection.pc.in:
927 Rename pkg-config name to gobject-introspection-1.0,
928 Do not installed anything which is not using the gir format.
929 Disable compililation the old C scanner, but still keep the source
930 until all the remaning functionallity has been ported.
932 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
934 * giscanner/giscannermodule.c (symbol_get_ident): Prevent
935 a crash when symbol->indent is NULL.
937 * giscanner/sourcescanner.py (ctype_name): Add ctype_name,
938 a function to convert a CTYPE symbol to a string
940 2008-05-24 Johan Dahlin <jdahlin@async.com.br>
943 * giscanner/girwriter.py:
944 * giscanner/giscannermodule.c
945 (pygi_source_scanner_append_filename),
946 (pygi_source_scanner_parse_file):
947 * giscanner/glibtransformer.py:
948 * giscanner/sourcescanner.py:
949 Revert back to using temporary files to send in headers.
950 Allow Functions to be passed in as callbacks, add a couple
951 of try/excepts missing features.
952 We can now scan pango
954 2008-05-08 Johan Dahlin <johan@gnome.org>
956 * giscanner/glibtransformer.py:
957 * giscanner/transformer.py:
958 Move namespace stripping glibtransformer->transformer
960 2008-05-08 Johan Dahlin <johan@gnome.org>
963 * giscanner/girwriter.py:
964 * giscanner/glibtransformer.py:
965 * giscanner/transformer.py:
966 * tools/g-ir-scanner:
967 Introduce a namespace ast node
969 2008-05-05 Johan Dahlin <johan@gnome.org>
971 * giscanner/__init__.py:
972 * giscanner/sourcescanner.py:
973 * giscanner/transformer.py:
974 Move sourcescanner symbols to the sourcescanner module, instead
975 of in the global __init__ namespace.
977 2008-05-03 Johan Dahlin <johan@gnome.org>
979 * giscanner/glibtransformer.py:
980 * tools/g-ir-scanner:
981 Handle missing parameters better, allow - and + in .la dlname
984 2008-05-03 Johan Dahlin <johan@gnome.org>
986 * giscanner/__init__.py:
988 * giscanner/girwriter.py:
989 * giscanner/glibtransformer.py:
990 * giscanner/transformer.py:
991 Parse struct fields properly, improve debugging.
993 2008-04-29 Johan Dahlin <johan@gnome.org>
996 * giscanner/girwriter.py:
997 * giscanner/transformer.py:
998 * tests/parser/Foo-expected.gir:
1000 Use transfer-ownership everywhere, to mark ownership/calle/caller etc.
1002 2008-04-29 Johan Dahlin <jdahlin@async.com.br>
1005 * docs/g-ir-scanner.1:
1006 * metadata-annotations-proposal.txt:
1007 * metadata-format.txt:
1008 Add a basic, unfinshed man page for g-ir-scanner, move documents into .txt
1010 2008-04-29 Johan Dahlin <jdahlin@async.com.br>
1012 * giscanner/girwriter.py:
1013 * giscanner/glibtransformer.py:
1014 * giscanner/transformer.py:
1015 * giscanner/xmlwriter.py:
1016 * tests/parser/Foo-expected.gir:
1017 * tests/parser/foo-object.h:
1018 Write record/structs to gir file too. Add a couple of tests,
1019 fix an off by one error in xmlwriter.py.
1021 2008-04-28 Johan Dahlin <johan@gnome.org>
1023 * giscanner/xmlwriter.py: Calculate the line length properly,
1024 include the provided extra indentation in the calculation, really.
1026 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
1029 * giscanner/glibast.py:
1030 * giscanner/glibtransformer.py:
1031 * giscanner/transformer.py:
1032 * tools/g-ir-scanner:
1033 Add a --strip-prefix and sort out confusion between names and symbols
1034 for functions and struct + derivaties.
1035 Refactor bootstrap of g-ir-scanner, so we can set options on
1036 Transformer() before parsing everything.
1038 2008-04-28 Johan Dahlin <johan@gnome.org>
1040 * giscanner/transformer.py (Transformer._traverse_one): Avoid recursion
1041 when scanning girepository.h
1043 * giscanner/sourcescanner.py (SourceScanner._preprocess): Define
1044 a __GI_SCANNER__ when we run.
1046 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
1049 * giscanner/girwriter.py:
1050 * giscanner/glibast.py:
1051 * giscanner/glibtransformer.py:
1052 * tests/parser/Foo-expected.gir:
1053 * tests/parser/utility-expected.gir:
1054 Rename most c:identifier to c:type. Add new ones to
1055 class/interface/enum/boxed.
1057 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
1060 * giscanner/girwriter.py:
1061 * giscanner/glibtransformer.py:
1062 * tests/parser/Foo-expected.gidl:
1063 * tests/parser/Makefile.am:
1064 Move c:identifier from return-value to subchild type,
1065 as per Jürgs suggestion
1067 2008-04-28 Johan Dahlin <johan@gnome.org>
1069 * giscanner/girwriter.py:
1070 * tests/parser/Foo-expected.gir:
1071 Write property.type as a child node.
1073 2008-04-27 Johan Dahlin <johan@gnome.org>
1078 * gidl/gobject-2.0.gidl:
1080 * gir/gobject-2.0.gir:
1081 * tests/parser/Makefile.am:
1082 Replace the GObject gidl with a GObject gir.
1084 2008-04-27 Johan Dahlin <johan@gnome.org>
1086 * tools/Makefile.am (bin_SCRIPTS): g-ir-scanner is a script,
1089 * giscanner/xmlwriter.py:
1090 * tests/parser/Foo-expected.gir:
1091 Include indentation in line length calculation
1093 2008-04-27 Johan Dahlin <johan@gnome.org>
1095 * giscanner/girparser.py:
1096 Prettify NS parsing using elementtree.
1098 2008-04-27 Johan Dahlin <johan@gnome.org>
1101 * giscanner/Makefile.am:
1102 * giscanner/girparser.py:
1103 * giscanner/glibtransformer.py:
1104 * tests/parser/Foo-expected.gidl:
1105 * tests/parser/Foo-expected.gir:
1106 * tests/parser/Makefile.am:
1107 * tests/parser/utility-expected.gidl:
1108 * tests/parser/utility-expected.gir:
1109 * tools/g-ir-scanner:
1110 Switch over to GIR as the default format. Add a simple GIDL
1112 Update tests and fix simplify makefiles by depending
1113 on GNU make extensions.
1115 2008-04-27 Johan Dahlin <johan@gnome.org>
1117 * giscanner/xmlwriter.py:
1118 Wrap attributes for lines which are wider than 79 characters
1120 * giscanner/scannerlexer.l:
1121 Allow parenthesis in annotations
1124 * giscanner/gidlwriter.py:
1125 * giscanner/girwriter.py:
1126 * giscanner/glibtransformer.py:
1127 * giscanner/transformer.py:
1128 Add initial sequence support, including annotation.
1129 Refactor type handling a bit.
1131 2008-04-27 Johan Dahlin <johan@gnome.org>
1133 * tests/parser/Foo-expected.gidl:
1134 * tests/parser/foo-object.h:
1135 * tests/parser/foo.c (foo_object_class_init),
1136 (foo_object_get_strings), (foo_object_get_objects):
1137 Add two new functions to check sequence return values.
1138 Also fixes a compilation warning.
1140 2008-04-27 Johan Dahlin <johan@gnome.org>
1142 * giscanner/giscannermodule.c (]): Cast the getter, avoids
1143 a compilation warning.
1145 * tools/Makefile.am (g_ir_scanner_SOURCES):
1146 g-ir-scanner has no sources.
1148 2008-04-25 Johan Dahlin <johan@gnome.org>
1150 * giscanner/Makefile.am:
1152 * giscanner/gidlparser.py:
1153 * giscanner/gidlwriter.py:
1154 * giscanner/girwriter.py:
1155 * giscanner/glibast.py:
1156 * giscanner/glibtransformer.py:
1157 * giscanner/transformer.py:
1158 Split out nodes to ast.py and glibast.py
1160 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
1162 * giscanner/Makefile.am:
1163 * giscanner/gidlparser.py:
1164 * giscanner/gidlwriter.py:
1165 * giscanner/girwriter.py:
1166 * giscanner/glibtransformer.py:
1167 * giscanner/gobjecttreebuilder.py:
1168 * giscanner/transformer.py:
1169 * giscanner/treebuilder.py:
1170 * tools/g-ir-scanner:
1171 Rename treebuilder to transformer and
1172 gobjectreebuilder to glibtransformer.
1174 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
1176 * giscanner/Makefile.am:
1177 * giscanner/__init__.py:
1178 * giscanner/cgobject.py:
1179 * giscanner/gidlparser.py:
1180 * giscanner/gidlwriter.py:
1181 * giscanner/girwriter.py:
1182 * giscanner/gobjecttreebuilder.py:
1183 * giscanner/odict.py:
1184 * giscanner/sourcescanner.py:
1185 * giscanner/treebuilder.py:
1186 * giscanner/xmlwriter.py:
1187 * tools/Makefile.am:
1188 * tools/g-ir-scanner:
1189 Add LGPLv2 license header and install all python files
1191 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
1194 * giscanner/gidlwriter.py:
1195 * giscanner/giscannermodule.c (pygi_source_directive_new),
1196 (directive_get_options), (pygi_source_symbol_new),
1197 (symbol_get_base_type), (pygi_source_type_new),
1198 (type_get_base_type), (type_get_child_list),
1199 (pygi_source_scanner_get_symbols),
1200 (pygi_source_scanner_get_directives):
1201 * giscanner/gobjecttreebuilder.py:
1202 * giscanner/sourcescanner.py:
1203 * giscanner/treebuilder.py:
1204 * tests/parser/foo-object.h:
1205 Add support for virtual methods.
1206 Pair struct FooClass with struct Foo.
1207 Clean up the SourceScanner bindings a bit.
1208 Add a testcase for virtual methods.
1210 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
1212 * giscanner/cgobject.py:
1213 * giscanner/gidlwriter.py:
1214 * giscanner/gobjecttreebuilder.py:
1215 Add support for signals
1217 * tests/parser/foo.c (foo_object_class_init):
1218 * Foo-expected.gidl:
1219 Add a signal and update the expected output.
1221 2008-04-24 Johan Dahlin <jdahlin@async.com.br>
1223 * giscanner/gidlwriter.py:
1224 * giscanner/girwriter.py:
1225 * giscanner/giscannermodule.c (directive_get_name),
1226 (directive_get_value), (directive_get_options),
1227 (symbol_get_directives), (symbol_set_directives),
1228 (pygi_source_scanner_parse_file),
1229 (pygi_source_scanner_lex_filename),
1230 (pygi_source_scanner_get_directives), (init_giscanner):
1231 * giscanner/sourcescanner.c (gi_source_scanner_get_directives):
1232 * giscanner/sourcescanner.h:
1233 * giscanner/sourcescanner.py:
1234 * giscanner/treebuilder.py:
1235 * tools/g-ir-scanner:
1236 Add support for source/header annotations.
1238 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
1240 * giscanner/gidlwriter.py:
1241 * giscanner/girwriter.py:
1242 * giscanner/gobjecttreebuilder.py:
1243 * giscanner/treebuilder.py:
1244 Add support for Callbacks
1246 2008-04-22 Havoc Pennington <hp@pobox.com>
1248 * girepository/ginvoke.c (g_function_info_invoke): If a symbol is
1249 not in metadata->module, look for it in the global module, in case
1250 some other object or the app itself provides the symbol.
1252 2008-04-22 Havoc Pennington <hp@pobox.com>
1254 * girepository/gmetadata.c (_g_metadata_init): hack to avoid
1255 dlopening a library that is already in the main app, by checking
1256 whether one of the lib's symbols is already loaded.
1258 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
1260 * tests/parser/Foo-expected.gidl:
1261 * tests/parser/foo-object.h:
1264 2008-04-22 Havoc Pennington <hp@pobox.com>
1266 * girepository/ginfo.c (g_interface_info_find_method):
1267 Use interface_blob_size not object_blob_size to compute offset.
1269 2008-04-22 Havoc Pennington <hp@pobox.com>
1271 * girepository/gmetadata.c (_g_metadata_init): remove
1272 G_MODULE_BIND_LOCAL flag when loading libraries, since some libs
1273 (Glade and Clutter for example) rely on being loaded globally.
1275 2008-04-22 Havoc Pennington <hp@pobox.com>
1277 * girepository/ginfo.c (g_registered_type_info_get_g_type): new
1278 function to get the GType given a RegisteredTypeInfo
1280 2008-04-22 Johan Dahlin <johan@gnome.org>
1282 * COPYING: Add a LGPL license, to prevent automake to
1283 put in a copy of GPL here. Pointed out by Havoc.
1285 * girepository/ginfo.c (g_info_from_entry), (g_type_info_new),
1286 (g_type_info_is_pointer), (g_type_info_get_tag),
1287 (g_type_info_get_param_type), (g_type_info_get_interface),
1288 (g_type_info_get_array_length), (g_type_info_is_zero_terminated),
1289 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
1290 (g_error_domain_info_get_codes), (g_enum_info_get_value),
1291 (g_object_info_get_interface), (g_object_info_get_field),
1292 (g_interface_info_get_prerequisite),
1293 (g_signal_info_get_class_closure), (g_constant_info_get_value):
1294 * girepository/ginvoke.c (get_ffi_type):
1295 * girepository/girepository.h:
1296 * girepository/gmetadata.c (g_metadata_get_dir_entry),
1297 (g_metadata_check_sanity), (validate_header),
1298 (validate_array_type_blob), (validate_iface_type_blob),
1299 (validate_param_type_blob), (validate_error_type_blob),
1300 (validate_type_blob), (validate_constant_blob),
1301 (validate_struct_blob), (validate_enum_blob):
1302 * girepository/gmetadata.h:
1303 * tests/Makefile.am:
1304 * tests/invoke/Makefile.am:
1305 * tests/invoke/invoke.c (main):
1306 * tests/roundtrips.sh:
1307 * tools/Makefile.am:
1308 * tools/compiler.c (format_output), (write_out_metadata), (main):
1309 * tools/generate.c (write_type_name), (write_type_info),
1310 (write_constant_value), (write_enum_info), (load_metadata), (main):
1311 * tools/gidlcompilercontext.c:
1312 * tools/gidlcompilercontext.h:
1313 * tools/gidlcompilerentrynode.c:
1314 * tools/gidlcompilerentrynode.h:
1315 * tools/gidlcompilertypenode.c:
1316 * tools/gidlcompilertypenode.h:
1317 * tools/gidlmodule.c (g_idl_module_build_metadata):
1318 * tools/gidlmodule.h:
1319 * tools/gidlnode.c (init_stats), (dump_stats),
1320 (g_idl_node_get_size), (g_idl_node_get_full_size),
1321 (g_idl_node_cmp), (g_idl_node_can_have_member),
1322 (g_idl_node_add_member), (g_idl_node_param_direction_string),
1323 (parse_int_value), (parse_uint_value), (parse_float_value),
1324 (parse_boolean_value), (find_entry_node), (find_entry),
1325 (serialize_type), (g_idl_node_build_metadata), (write_string):
1327 * tools/gidlparser.c (parse_type_internal):
1328 * tools/quote-file.sh:
1329 Revert revisions 157,149-148,136-129 and 120.
1330 Move back to using g-idl-generate to generate the metadata and
1331 avoids dependency on a c compiler.
1333 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
1335 * giscanner/girwriter.py:
1336 * tools/g-ir-scanner:
1337 Add an initial GIR writer and a --format option to g-ir-scanner
1339 2008-04-21 Johan Dahlin <johan@gnome.org>
1341 * giscanner/cgobject.py: Use ctypes.util.find_library to locate
1342 gobject-2.0 and raise ImportError if not found.
1344 * giscanner/gidlparser.py:
1345 * giscanner/gidlwriter.py:
1346 * giscanner/gobjecttreebuilder.py:
1347 * tools/g-ir-scanner:
1348 Add a --include argument to include types from other idls.
1349 Add a minimalistic GIDL parser (just objects for now)
1350 Implement resolving of external type references and use it to
1351 resolve parent types, argument types and return types.
1353 2008-04-21 Johan Dahlin <johan@gnome.org>
1355 * giscanner/gidlwriter.py:
1356 * giscanner/gobjecttreebuilder.py:
1357 * giscanner/treebuilder.py:
1358 Add support for properties.
1359 Refactor Class/Interface support a bit, to share more code and
1360 always initialize their method attribute to an empty list.
1362 2008-04-21 Johan Dahlin <johan@gnome.org>
1364 * giscanner/cgobject.py:
1365 Add a workaround for a glib bug interface introspection bug
1366 (object_interface_list_properties, object_class_list_properties):
1367 Cast the return value to GParamSpec.
1369 * tests/parser/Foo-expected.gidl: Update
1370 * tests/parser/foo.c: Add a string property
1372 * giscanner/gobjecttreebuilder.py:
1373 After stripping namespaces, remove the original
1374 item to avoid duplication (GtkButton struct and Button object)
1376 2008-04-21 Johan Dahlin <johan@gnome.org>
1378 * giscanner/gobjecttreebuilder.py:
1379 * giscanner/treebuilder.py:
1380 Strip namespaces before objects, so we'll export
1381 GtkButton as Button in the gtk namespace
1383 2008-04-21 Johan Dahlin <johan@gnome.org>
1385 * giscanner/gidlwriter.py:
1386 * giscanner/gobjecttreebuilder.py:
1387 * giscanner/treebuilder.py:
1388 Add constructors for object/boxed types.
1390 2008-04-21 Johan Dahlin <johan@gnome.org>
1392 * giscanner/gidlwriter.py:
1393 * giscanner/gobjecttreebuilder.py:
1394 Add support for boxed types
1396 2008-04-21 Johan Dahlin <johan@gnome.org>
1398 * giscanner/giscannermodule.c: Mark structures as const,
1399 wrap SourceType.const_string.
1401 * tests/parser/foo-object.h: Add a couple of constants.
1403 * giscanner/gidlwriter.py:
1404 * giscanner/gobjecttreebuilder.py:
1405 * giscanner/treebuilder.py:
1406 Add basic support for interfaces
1408 * tools/g-ir-scanner:
1409 Add -o/--output for writing to a file
1411 2008-04-21 Havoc Pennington <hp@redhat.com>
1413 * TODO: add some C API wishlist items I could think of quickly
1415 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
1417 * giscanner/gidlwriter.py:
1418 * giscanner/xmlwriter.py:
1419 Add a simple api for writing tags which can be used
1420 with the new 'with statement' in python 2.5
1422 2008-04-21 Johan Dahlin <johan@gnome.org>
1424 * giscanner/gobjecttreebuilder.py:
1425 Strip namespace and object prefix from method names.
1427 2008-04-21 Johan Dahlin <johan@gnome.org>
1429 * tools/g-ir-scanner (main): Add --pkg option to pass in
1430 pkg-config modules to get cflags from.
1432 * giscanner/gidlwriter.py (GIDLWriter._write_method):
1433 Avoid duplication, reuse function writer for methods.
1435 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
1437 * giscanner/gidlwriter.py:
1438 * giscanner/gobjecttreebuilder.py:
1439 * giscanner/treebuilder.py:
1440 * tools/g-ir-scanner:
1441 Resolve libtool .la files.
1442 Strip name spaces for methods.
1443 Add function symbols
1445 2008-04-20 Johan Dahlin <jdahlin@async.com.br>
1447 * giscanner/cgobject.py:
1448 * giscanner/gidlwriter.py:
1449 * giscanner/gobjecttreebuilder.py:
1450 * giscanner/treebuilder.py:
1451 Add support for classes and methods
1453 2008-04-20 Johan Dahlin <johan@gnome.org>
1455 * giscanner/gidlwriter.py:
1456 * giscanner/gobjecttreebuilder.py:
1457 * giscanner/odict.py:
1458 Avoid conflicts, keep the output ordered similar to
1459 the order of the input.
1460 Add a simple ordered dictionary implemenation
1462 2008-04-19 Johan Dahlin <johan@gnome.org>
1464 * giscanner/cgobject.py:
1465 * giscanner/gidlwriter.py:
1466 * giscanner/gobjecttreebuilder.py:
1467 * tools/g-ir-scanner:
1468 Start introspecting get-type functions.
1469 Implement support for GLib/GFlags GTypes.
1470 Add a ctype based GObject binding.
1472 2008-04-18 Johan Dahlin <jdahlin@async.com.br>
1474 * giscanner/gidlwriter.py:
1475 * giscanner/xmlwriter.py:
1476 * tools/g-ir-scanner:
1477 Add a simplistic gidl writer, which can't do too much.
1479 2008-04-18 Johan Dahlin <johan@gnome.org>
1481 * giscanner/sourcescanner.py:
1482 * giscanner/treebuilder.py:
1483 * tools/g-ir-scanner:
1484 split tree building and source scanning interface to separate files.
1486 2008-04-18 Johan Dahlin <johan@gnome.org>
1488 * tools/g-ir-scanner (Parameter.__init__): Start constructing
1490 - Add support for struct/parameter/return, start parsing of ctypes
1492 * giscanner/giscannermodule.c: wrap GISourceType.child_list and
1495 2008-03-31 Johan Dahlin <johan@gnome.org>
1497 * tools/g-ir-scanner:
1498 Start to build abstract syntax node of scanned sources.
1499 Add support for cpp options.
1501 2008-03-27 Johan Dahlin <johan@gnome.org>
1503 * giscanner/giscannermodule.c:
1504 * giscanner/scannerlexer.l:
1505 * giscanner/sourcescanner.c:
1506 * tools/g-ir-scanner:
1508 Add simple pre-processor using subprocess and a PIPE.
1509 Change the parse_file apis to accept a file descriptor.
1511 2008-03-25 Johan Dahlin <johan@gnome.org>
1513 * giscanner/__init__.py:
1514 * tools/g-ir-scanner:
1515 Fix a typo and add an example python test program.
1517 2008-03-25 Johan Dahlin <johan@gnome.org>
1519 * giscanner/__init__.py:
1520 * giscanner/giscannermodule.c:
1521 * giscanner/sourcescanner.c:
1522 * giscanner/sourcescanner.h:
1523 Add constants and wrap a few more SymbolType fields
1525 2008-03-25 Johan Dahlin <johan@gnome.org>
1529 * giscanner/__init__.py:
1530 * giscanner/giscannermodule.c:
1531 * giscanner/Makefile.am:
1533 Add initial python bindings for the scanner and
1534 depend on python 2.5.
1536 2008-03-25 Johan Dahlin <johan@gnome.org>
1540 * giscanner/Makefile.am:
1541 * giscanner/sourcescanner.c:
1542 * giscanner/sourcescanner.h:
1543 * tools/Makefile.am:
1544 * tools/grealpath.h:
1545 * tools/sourcescanner.c:
1546 * tools/sourcescanner.h:
1548 Move the scanner to a separate library.
1550 2008-03-23 Johan Dahlin <johan@gnome.org>
1552 * tools/Makefile.am:
1555 * tools/scannerlexer.l:
1556 * tools/scannerparser.y:
1557 * tools/sourcescanner.c:
1558 * tools/sourcescanner.h:
1559 Split out the source scanner from the generator.
1560 Rename the symbols used in the scanner to use the gi_ prefix.
1561 This should make it possible to use the raw C parser from
1564 2008-03-23 Johan Dahlin <johan@gnome.org>
1566 * tests/parser/Makefile.am (utility.gidl):
1567 * tests/parser/utility-expected.gidl:
1568 Pass in the gobject.gidl since we're defining a GObject.
1570 2008-03-12 Johan Dahlin <johan@gnome.org>
1572 * relaxng/relaxng.rng:
1573 Add a releaxng in relaxng we can use to validate the relaxngs
1576 2008-03-12 Jürg Billeter <j@bitron.ch>
1578 * tools/scanner.c: (g_igenerator_new):
1579 * tools/scannerparser.y:
1580 Fix compiler warnings.
1582 2008-03-12 Jürg Billeter <j@bitron.ch>
1586 * tools/scannerparser.y:
1587 Start fixing memory management in g-idl-scanner.
1589 2008-03-12 Rob Taylor <rob.taylor@codethink.co.uk>
1591 * tools/gidlcompilercontext.c: (write_compiled):
1592 Fix critical warning when no shlib passed to g-idl-compiler.
1594 2008-03-12 Johan Dahlin <johan@gnome.org>
1596 * tests/parser/utility-expected.gidl:
1597 * tests/parser/utility.h:
1598 Add a get_type-function, so the scanner actually
1599 parses it as an object.
1601 2008-03-12 Johan Dahlin <johan@gnome.org>
1603 * tools/gidlwriter.c (function_generate): Add missing trailing quote.
1606 * tests/parser/Foo-expected.gidl:
1607 * tests/parser/Makefile.am:
1608 * tests/parser/foo-object.h:
1609 * tests/parser/foo.c:
1610 * tests/parser/utility-expected.gidl:
1611 * tests/parser/utility.c:
1612 * tests/parser/utility.h:
1614 Add a new gidl test. 'utility.gidl', which is used to be able
1615 to test external type references. Add a reference to UtilityObject*
1618 2008-03-11 Johan Dahlin <johan@gnome.org>
1622 Remove most global variables
1624 2008-03-11 Philip Van Hoof <me@pvanhoof.be>
1626 * tools/scannerlexer.l:
1628 * tests/parser/Foo-expected.gidl:
1629 * tests/parser/foo.c:
1630 * tests/parser/Makefile.am:
1631 * tests/parser/foo-object.h:
1633 Added a few extra tests. Which resulted in finding a few
1634 bugs. Which resulted in me fixing those bugs
1636 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
1638 * tools/gidlcompilercontext.c: (g_idl_compiler_write_dir_entry),
1639 (g_idl_compiler_write_xref_entry), (g_idl_compiler_add_xref):
1640 Add some comments for strings into generated output for
1643 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
1645 * tools/gidlcompilercontext.c: (write_compiled):
1646 Write out the shlibs variable before writing out the strings
1647 length. Fixes compiler warning when using '-l' flag with
1650 2008-03-11 Johan Dahlin <johan@gnome.org>
1652 * tests/parser/Foo-expected.gidl:
1653 * tests/parser/foo-object.h:
1656 * tools/scannerlexer.l:
1657 Add support for parsing return arguments. Add support for
1658 caller-owns return types.
1659 Patch by Philip Van Hoof.
1661 * tools/scannerparser.y:
1662 Remove parsing of the @deprecated syntax used in headers.
1663 We will support gtk-doc deprecation in the future instead.
1665 2008-03-11 Johan Dahlin <johan@gnome.org>
1667 * tools/compiler.c (main): Coding style fixes
1669 2008-03-10 Johan Dahlin <johan@gnome.org>
1672 Add GCOV_LIBS to GILIBS
1674 2008-03-10 Johan Dahlin <johan@gnome.org>
1676 * tests/parser/Foo-expected.gidl:
1677 * tests/parser/foo.c:
1678 Rename null-ok to direction=out
1680 2008-03-10 Philip Van Hoof <me@pvanhoof.be>
1682 reviewed and extensively tested by Johan
1684 * tests/parser/Foo-expected.gidl:
1685 * tests/parser/foo-object.h:
1686 * tests/parser/foo.c:
1689 * tools/gidlwriter.c:
1692 * tools/scannerlexer.l:
1693 * tools/scannerparser.y:
1695 Add support for scanning for gtk-doc comments inside
1696 C source files. Add tests
1698 2008-03-10 Johan Dahlin <johan@gnome.org>
1700 * tests/parser/Makefile.am:
1701 * tests/parser/foo.c:
1704 * tools/scannerparser.y:
1705 Add an api to lex filenames.
1706 Lex all source .c files passed in on the command line.
1707 Scan sources in a test and a couple of private structures
1708 which should not be included in the generated gidl
1710 2008-03-10 Johan Dahlin <johan@gnome.org>
1712 * tests/invoke/Makefile.am: Make the generated metadata
1713 depend on the g-idl-compiler
1715 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1717 * tools/gidlmodule.c
1718 * tools/gidlmodule.h
1721 Remove the old g-idl-compiler code.
1724 2008-02-22 Mark Doffman <mark.doffman@codethink.co.uk>
1726 * tools/quote-file.sh
1729 Move to using the 'C' struct compiler code.
1731 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1733 * girepository/ginfo.c
1735 Change the way that external references with no namespace
1736 are dealt with. External references with no namespace
1737 are placed into the XML as-if they are a local reference.
1738 This is temporary, but helps with roundtrip tests.
1740 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1742 * girepository/ginfo.c
1743 Add the ability to get the value of a constant of
1744 type TYPE_TAG_SYMBOL. In the case of a symbol the value
1745 is provided as a string.
1747 This would deal properly with:
1748 typedef char* random;
1749 const random = "A string";
1751 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1753 * girepository/ginfo.c
1754 * girepository/girepository.h
1756 Add a function to check if an enum is registered or not.
1757 Previously anything testing this relied on the g-type
1758 string offset having a value of 0.
1760 * girepository/gmetadata.c
1761 * girepository/gmetadata.h
1763 Remove unneccesary or erroneous checks. There were two
1764 metadata validation checks which made sure that the blob
1765 sizes were the same as some magic numbers compiled into the code.
1766 This is wrong as it breaks any forwards compatibility that may
1769 Checks were also present that made sure that unregistered type
1770 blobs had a value of 0 in the g-type offset field. This is
1771 unneccessary. If a type blob is unregistered then any value
1772 in its g-type field is simply invalid.
1774 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1776 * girepository/ginfo.c
1777 * girepository/gmetadata.c
1778 * girepository/gmetadata.h
1780 Change the metadata format to have a standard header
1781 for all the type blobs. Merge the SimpleTypeBlob
1782 and InterfaceTypeBlob into a union. A union of these
1783 two blobs existed previously but was not explicit
1784 in the metadata format.
1786 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1788 * tools/gidlcompilercontext.c
1789 * tools/gidlcompilercontext.h
1790 * tools/gidlcompilerentrynode.c
1791 * tools/gidlcompilerentrynode.h
1792 * tools/gidlcompilertypenode.c
1793 * tools/gidlcompilertypenode.h
1795 Add code to compile a tree of GIdlNodes to
1796 a 'C' struct representing the metadata.
1797 This is to aid cross-compiling. Previously
1798 the g-idl-compiler created a binary blob with
1799 data written in the byte order and alignment
1800 of the tool rather than the intended target.
1802 Cleaned up and improved by Johan and Robert :-)
1804 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1806 * girepository/ginvoke.c
1807 * girepository/girepository.h
1808 * girepository/gmetadata.c
1809 * girepository/gmetadata.h
1811 * tools/gidlparser.c
1812 Modify TYPE_TAG_INTERFACE to TYPE_TAG_SYMBOL
1813 to avoid confusion with the interface blob.
1816 * tools/gidlparser.c
1817 Remove magic numbers and replace with type-tag
1818 enumeration symbols.
1820 * girepository/gmetadata.c
1821 Add validate declaration.
1823 2008-03-10 Jürg Billeter <j@bitron.ch>
1825 * tools/gidlparser.c: (parse_type_internal):
1826 * tools/scannerlexer.l:
1827 * tools/scannerparser.y:
1828 Support C99 _Bool type in scanner.
1830 2008-03-10 Jürg Billeter <j@bitron.ch>
1832 * tests/parser/Foo-expected.gidl:
1833 * tests/parser/foo-object.h:
1834 * tests/parser/foo.c: (foo_enum_method):
1835 * tools/scanner.c: (g_igenerator_process_function_symbol):
1836 Don't skip functions that are defined in the namespace of a type
1837 that doesn't support methods, as for example enums.
1839 2008-03-10 Johan Dahlin <johan@gnome.org>
1841 * gidl.dtd: Remove, we're using relaxng for now
1843 * tests/parser/Foo-expected.gidl:
1844 * tests/parser/foo-object.h:
1845 * tests/parser/foo.c:
1846 Rename the enum/flags get_type functions to include the whole type.
1848 2008-03-08 Marc-Andre Lureau <marcandre.lureau@gmail.com>
1850 * tools/gidlwriter.c (enum_generate): added "type-name",
1851 "get-type" and "deprecated" missing arguments.
1852 * tests/parser/Foo-expected.gidl:
1853 * tests/parser/foo-object.h: test enum type, and no type.
1855 2008-03-06 Johan Dahlin <jdahlin@async.com.br>
1858 Consistent checks, add missing 'test'
1860 2008-03-05 Havoc Pennington <hp@redhat.com>
1862 * configure.ac: Take advantage of a libffi.pc if one exists, as it
1863 does on Fedora 8. Make libffi a hard requirement, since it was in
1864 practice anyway (was not really conditional in the code or
1865 makefile, only in configure).
1867 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1869 reviewed by: Rob Taylor <rob.taylor@codethink.co.uk>
1870 reviewed by: Johan Dahlin <johan@gnome.org>
1872 * tests/Makefile.am:
1873 * tests/roundtrips.sh:
1874 Modify the roundtrips test so that they do not use the
1875 --raw option of the gidl compiler but instead compile a
1876 shared library to use with g_module.
1878 * tests/invoke/Makefile.am:
1879 * tests/invoke/invoke.c:
1880 Modify the invoke tests to build a shared library rather
1881 than use the --raw option.
1883 * tests/invoke/invoke-namespace-find.sh: Removed:
1884 Noone knows why this was here, so removed.
1886 2008-02-19 Rob Taylor <rob.taylor@codethink.co.uk>
1888 * tools/scanner.c: (g_igenerator_process_function_symbol):
1889 Move g_idl_node_can_have_member test later, as it broke spotting
1890 get_type's for nodes that can't have members.
1892 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1895 * tools/gidlnode.c: (g_idl_node_can_have_member):
1896 Add g_idl_node_can_have_member.
1898 * tools/scanner.c: (g_igenerator_process_function_symbol):
1899 Use g_idl_node_can_have_member to test if we should add a function
1900 as a member of the type node.
1902 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1904 * gidl/GLib.gidl: Renamed to gidl/gobject-2.0.gidl:
1906 * tests/parser/Makefile.am:
1907 Rename GLib.gidl to gobject-2.0.gidl and install in /usr/share/gidl.
1909 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1911 * tools/scanner.c: (main):
1912 Ignore -pthread when passed to g-idl-scanner.
1914 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1916 * tools/grealpath.h: Added:
1917 * tools/scanner.c: (main):
1918 * tools/scannerlexer.l:
1919 * tools/Makefile.am:
1920 Always use absolute paths with symbolic links resolved when
1921 comparing filenames.
1923 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1925 * gobject-introspection.pc.in:
1926 Provide variables for g-idl-parser, scanner and compiler in the
1929 2008-02-13 Rob Taylor <rob.taylor@codethink.co.uk>
1932 * girepository/Makefile.am:
1933 * tools/Makefile.am:
1934 Rename GCOV_SOURCES to GCOVSOURCES to top automake complaining.
1936 2008-02-10 Johan Dahlin <johan@gnome.org>
1938 * tests/parser/Foo-expected.gidl:
1939 * tests/parser/foo-object.h:
1940 * tests/parser/foo.c: (foo_boxed_copy), (foo_boxed_free),
1941 (foo_boxed_get_type), (foo_boxed_new), (foo_boxed_method):
1944 2008-02-10 Johan Dahlin <johan@gnome.org>
1946 * tests/parser/Foo-expected.gidl:
1947 * tests/parser/foo-object.h:
1948 * tests/parser/foo.c: (foo_enum_get_type), (foo_flags_get_type):
1949 Add enum and flags test.
1951 2008-02-10 Johan Dahlin <johan@gnome.org>
1955 * girepository/Makefile.am:
1956 Make 'make distcheck' work again.
1958 2008-02-10 Johan Dahlin <johan@gnome.org>
1960 * m4/Makefile.am (EXTRA_DIST): its called as-compiler-flag.m4,
1963 * tests/parser/Makefile.am: Only create Foo.gidl when running make
1964 check, eg exclude it from BUILT_SOURCES.
1966 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
1971 * girepository/Makefile.am:
1972 * m4/Makefile.am: Added:
1973 * m4/as-compiler-flag.m4: Added:
1974 * m4/gcov.m4: Added:
1975 * tools/Makefile.am:
1976 Add ability to generate a coverage report.
1977 Adds configure option --enable-gcov and make rule 'check-coverage'.
1979 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
1983 * gidl/Makefile.am: Added:
1984 * girepository/Makefile.am: Added:
1985 * src/Makefile.am: Renamed to tools/Makefile.am:
1986 * src/compiler.c: Renamed to tools/compiler.c:
1987 * src/g-idl-offsets.pl: Renamed to tools/g-idl-offsets.pl:
1988 * src/generate.c: Renamed to tools/generate.c:
1989 * src/gidlmodule.c: Renamed to tools/gidlmodule.c:
1990 * src/gidlmodule.h: Renamed to tools/gidlmodule.h:
1991 * src/gidlnode.c: Renamed to tools/gidlnode.c:
1992 * src/gidlnode.h: Renamed to tools/gidlnode.h:
1993 * src/gidlparser.c: Renamed to tools/gidlparser.c:
1994 * src/gidlparser.h: Renamed to tools/gidlparser.h:
1995 * src/gidlwriter.c: Renamed to tools/gidlwriter.c:
1996 * src/gidlwriter.h: Renamed to tools/gidlwriter.h:
1997 * src/ginfo.c: Renamed to girepository/ginfo.c:
1998 * src/ginvoke.c: Renamed to girepository/ginvoke.c:
1999 * src/girepository.c: Renamed to girepository/girepository.c:
2000 * src/girepository.h: Renamed to girepository/girepository.h:
2001 * src/gmetadata.c: Renamed to girepository/gmetadata.c:
2002 * src/gmetadata.h: Renamed to girepository/gmetadata.h:
2003 * src/scanner.c: Renamed to tools/scanner.c:
2004 * src/scanner.h: Renamed to tools/scanner.h:
2005 * src/scannerlexer.l: Renamed to tools/scannerlexer.l:
2006 * src/scannerparser.y: Renamed to tools/scannerparser.y:
2007 * tests/invoke/Makefile.am:
2008 Split src/ into girepository/ and tools/
2012 * girepository/Makefile.am:
2013 * tests/Makefile.am:
2014 * tests/invoke/Makefile.am:
2015 * tests/parser/Makefile.am:
2016 * tests/roundtrips.sh:
2017 * tools/Makefile.am:
2018 Make distcheck work.
2020 2008-02-04 Rob Taylor <rob.taylor@codethink.co.uk>
2022 * tests/invoke/invoke.c: (main):
2023 * tests/invoke/testfns.c: (test6), (test7):
2024 * tests/invoke/testfns.xml:
2025 Add tests for invokation with a GList argument.
2026 Also tests caller-owns return values.
2028 2008-02-04 Rob Taylor <robtaylor@floopily.org>
2031 Add some documentation for GICallableInfo
2033 2008-02-01 Mark Doffman <mark.doffman@codethink.co.uk>
2036 Correct syntax errors in the DTD file.
2038 * relaxng/c-types.xml:
2039 * relaxng/g-types.xml:
2041 Add a RelaxNG specification for the GObject Introspection XML data.
2042 The Specification has validated all of the test files.
2044 2008-01-25 Rob Taylor <robtaylor@floopily.org>
2046 * tests/roundtrips.sh:
2047 * tests/struct.test:
2048 Add roundtrip tests for structs.
2050 2008-01-11 Johan Dahlin <johan@gnome.org>
2052 * src/scanner.c (g_igenerator_process_function_symbol):
2053 Refactor out g_idle_node_add_member.
2054 (create_node_from_gtype, create_node_from_ctype):
2055 Use case instead of if...else
2056 (get_type_from_type_id):
2057 Rename to create_node_from_gtype
2058 (get_type_from_ctype):
2059 Rename to create_node_from_ctype
2061 Rename ginode -> node, gitype -> type, gifunc -> func.
2063 * src/gidlnode.c (g_idl_node_add_member, g_idl_node_cmp):
2064 Two new functions, refactor out of scanner.c
2066 * src/scanner.c: (g_igenerator_process_function_symbol):
2067 * src/scannerlexer.l:
2068 Do not save the content of the deprecated variable, only
2071 2008-01-11 Johan Dahlin <johan@gnome.org>
2073 * tests/parser/foo-object.h: Add a couple of comment parser tests.
2075 2008-01-11 Jürg Billeter <j@bitron.ch>
2077 * src/scannerlexer.l:
2078 Fix GTK-Doc parsing.
2080 2008-01-11 Jürg Billeter <j@bitron.ch>
2082 * src/scannerlexer.l:
2083 Fix GTK-Doc parsing.
2085 2008-01-11 Jürg Billeter <j@bitron.ch>
2087 * src/scanner.c: (lookup_symbol):
2088 Return unresolved name if we find unknown symbol.
2090 2008-01-11 Jürg Billeter <j@bitron.ch>
2092 * src/scanner.c: (g_igenerator_generate):
2093 Initialize GObject to fix scanning interface properties.
2095 * tests/parser/Foo-expected.gidl:
2096 * tests/parser/foo-object.h:
2097 * tests/parser/foo.c: (foo_interface_get_type):
2098 Test interfaces with GObject prerequisite.
2100 * tests/parser/Makefile.am:
2101 Set G_DEBUG=fatal_warnings to abort test on warnings and criticals.
2103 2007-12-27 Johan Dahlin <johan@gnome.org>
2105 * src/scannerlexer.l:
2106 Parse gtk-doc comments.
2108 * src/gidlwriter.c: (function_generate):
2109 Reorganize, avoid duplication and add support for
2110 writing deprecated functions.
2112 * src/scannerparser.y:
2114 Add new structure CDirective and functions to create/free them.
2116 * src/scanner.c: (g_igenerator_process_function_symbol),
2117 (g_igenerator_process_unregistered_struct_typedef),
2118 (g_igenerator_process_struct_typedef),
2119 (g_igenerator_process_union_typedef),
2120 (g_igenerator_process_enum_typedef),
2121 (g_igenerator_process_function_typedef), (g_igenerator_add_symbol),
2122 (g_igenerator_start_preprocessor):
2123 Parse @deprecated directive for functions.
2124 Remove some more C99isms.
2125 Send in -C to cpp to avoid stripping comments.
2127 * tests/parser/foo-object.h:
2128 * tests/parser/Foo-expected.gidl:
2129 Add deprecated directive
2131 2007-12-27 Johan Dahlin <johan@gnome.org>
2133 * src/scannerlexer.l (intsuffix): Add emacs mode line and
2134 escape ' and " so it looks more like C.
2137 Unlink temporary file used.
2139 2007-12-27 Johan Dahlin <johan@gnome.org>
2141 * src/scanner.c: (g_igenerator_new), (g_igenerator_free),
2142 (g_igenerator_start_preprocessor), (main):
2144 * src/scannerparser.y:
2145 Plug a couple of simple memory leaks.
2147 2007-12-27 Johan Dahlin <johan@gnome.org>
2149 * src/scanner.c: (g_igenerator_parse_macros),
2150 (g_igenerator_start_preprocessor), (g_igenerator_set_verbose),
2153 * src/scannerparser.y:
2154 * tests/parser/Makefile.am:
2156 Improve error reporting, return when the preprocessor fails.
2157 Add a verbose parameter, to aid debugging.
2158 Revert to using a temporary file to communicate between the
2159 preprocessor and the parser, because we need to wait for
2160 the exit code from the pre-processor before starting to parse.
2162 2007-12-16 Johan Dahlin <jdahlin@async.com.br>
2164 * src/Makefile.am: Rename clexer.l to scannerlexer.l and
2165 cparser.y to scannerparser.y
2167 2007-12-11 Johan Dahlin <johan@gnome.org>
2171 * src/scanner.c: (g_igenerator_new):
2173 Get rid of the global the_generator variable.
2175 2007-12-10 Johan Dahlin <johan@gnome.org>
2177 * src/scanner.c (main): Add an output option,
2178 add checks for required parameters
2181 set BUILD_SOURCES and CLEANFILES properly
2183 * src/gidlwriter.c: (g_writer_write_inline), (g_writer_write),
2184 (g_writer_write_indent), (g_writer_write_unindent),
2185 (field_generate), (value_generate), (constant_generate),
2186 (property_generate), (function_generate), (vfunc_generate),
2187 (signal_generate), (interface_generate), (struct_generate),
2188 (union_generate), (boxed_generate), (enum_generate),
2189 (node_generate), (g_writer_write_module), (g_idl_writer_save_file):
2191 * src/scanner.c: (g_igenerator_generate):
2193 * src/scannerwriter.c:
2195 Refactor scannerwriter to only be tied to a GIdlModule and move
2196 it (again!) to gidlwriter.c. Change the writer function to take
2199 2007-12-10 Johan Dahlin <johan@gnome.org>
2202 * src/scanner.c: (g_igenerator_generate):
2204 * src/scannerwriter.c: (g_igenerator_write_inline),
2205 (g_igenerator_write), (g_igenerator_write_indent),
2206 (g_igenerator_write_unindent), (field_generate), (value_generate),
2207 (constant_generate), (property_generate), (function_generate),
2208 (vfunc_generate), (signal_generate), (interface_generate),
2209 (struct_generate), (union_generate), (boxed_generate),
2210 (enum_generate), (node_generate), (module_generate),
2211 (g_scanner_write_file):
2213 Move the scanner gidl writing to a separate source file.
2215 2007-12-10 Johan Dahlin <johan@gnome.org>
2220 Move over all CType construction functions.
2222 * tests/parser/Makefile.am:
2223 Be verbose when printing parsing tests results.
2225 2007-12-10 Johan Dahlin <johan@gnome.org>
2227 * src/scanner.c (g_igenerator_start_preprocessor): Refactor
2228 preprocessor handling to here. Start cpp insteado of cc -E,
2229 always include -U__GNUC__, since it's specific to the preprocessor
2232 * tests/parser/Makefile.am (check-local): Silent diff and skip
2233 -U__GNUC__ which is always defined now
2235 2007-12-10 Johan Dahlin,,, <jdahlin@plasttroll>
2237 reviewed by: <delete if not using a buddy>
2239 * src/scanner.c: (g_igenerator_start_preprocessor), (main):
2240 * tests/parser/Makefile.am:
2242 2007-12-09 Johan Dahlin <johan@gnome.org>
2245 Use GOption for command line options.
2246 (g_igenerator_new, main): Simplify constructor and they way
2247 parameters are passed into it.
2253 * src/gen-introspect.c:
2254 * src/gen-introspect.h:
2256 Rename gen-introspect.[ch] to scanner.[ch]
2258 2007-12-09 Johan Dahlin <johan@gnome.org>
2262 * src/Makefile.am: Rename gen-introspect to g-idl-scanner,
2263 don't make the repository library and the other utilites link against
2266 * src/gen-introspect.c: (g_igenerator_create_object),
2267 (g_igenerator_create_interface), (g_igenerator_create_boxed),
2268 (g_igenerator_create_enum), (g_igenerator_create_flags),
2269 (g_igenerator_process_module_symbol),
2270 (g_igenerator_process_module), (g_igenerator_generate), (main):
2271 * src/gen-introspect.h:
2272 Refactor g_igenerator_process_types into smaller pieces.
2274 * tests/parser/Makefile.am:
2275 Depend on the gen-introspect binary
2277 2007-12-09 Johan Dahlin <johan@gnome.org>
2279 * src/gen-introspect.c (g_igenerator_process_types):
2280 Break into smaller pieces, one for each generated node type.
2282 2007-12-08 Johan Dahlin <johan@gnome.org>
2284 * src/gen-introspect.c: (g_igenerator_process_types),
2285 (g_igenerator_add_module):
2286 * tests/parser/Foo-expected.gidl:
2287 * tests/parser/foo-object.h:
2288 * tests/parser/foo.c: (foo_subobject_class_init),
2289 (foo_subobject_init):
2291 Add a subobject test and make sure to register defined classes
2292 in the lookup symbol hash table.
2294 2007-12-08 Johan Dahlin <johan@gnome.org>
2298 * src/gen-introspect.c: (g_igenerator_new), (lookup_symbol),
2299 (g_igenerator_process_types), (g_igenerator_add_module),
2300 (g_igenerator_add_include_idl), (main):
2301 * src/gen-introspect.h:
2302 * tests/parser/Makefile.am:
2303 * tests/parser/Foo-expected.gidl:
2305 Change the gen-introspect to generate namespaced module names,
2306 such as GLib.Object instead of GObject.
2307 Add a GLib.gidl which introduces GLib.Object and GLib.InitiallyUnowned,
2308 add a --include-idl parameter to gen-introspect,
2309 and update the parser test.
2311 2007-12-08 Johan Dahlin <johan@gnome.org>
2313 * src/gen-introspect.c:
2314 Move main to the end of the file and attempt to make it valid
2317 * tests/parser/Makefile.am (BUILT_SOURCES): Remove .repo here,
2318 we're not quite ready to generate metadata yet.
2323 Add a simple gen-introspect parser test
2325 2007-12-06 Gustavo J. A. M. Carneiro <gjc@gnome.org>
2327 reviewed by: Johan Dahlin <johan@gnome.org>
2330 * gobject-introspection.pc.in:
2332 * src/compiler.c: (format_output), (write_out_metadata), (main):
2333 * src/gen-introspect.c: (main):
2334 * src/gen-introspect.h:
2335 * src/generate.c: (write_callable_info), (write_repository),
2336 (load_metadata), (main):
2337 * src/gidlmodule.c: (g_idl_module_new),
2338 (g_idl_module_build_metadata):
2340 * src/gidlparser.c: (start_element_handler):
2341 * src/ginfo.c: (g_info_new), (g_info_from_entry),
2342 (g_base_info_get_name), (g_base_info_get_namespace),
2343 (g_base_info_is_deprecated), (g_base_info_get_annotation),
2344 (g_base_info_get_metadata), (g_function_info_get_symbol),
2345 (g_function_info_get_flags), (g_function_info_get_property),
2346 (g_function_info_get_vfunc), (signature_offset), (g_type_info_new),
2347 (g_callable_info_may_return_null),
2348 (g_callable_info_get_caller_owns), (g_callable_info_get_n_args),
2349 (g_callable_info_get_arg), (g_arg_info_get_direction),
2350 (g_arg_info_is_return_value), (g_arg_info_is_dipper),
2351 (g_arg_info_is_optional), (g_arg_info_may_be_null),
2352 (g_arg_info_get_ownership_transfer), (g_type_info_is_pointer),
2353 (g_type_info_get_tag), (g_type_info_get_param_type),
2354 (g_type_info_get_interface), (g_type_info_get_array_length),
2355 (g_type_info_is_zero_terminated),
2356 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
2357 (g_error_domain_info_get_quark), (g_error_domain_info_get_codes),
2358 (g_value_info_get_value), (g_field_info_get_flags),
2359 (g_field_info_get_size), (g_field_info_get_offset),
2360 (g_registered_type_info_get_type_name),
2361 (g_registered_type_info_get_type_init),
2362 (g_struct_info_get_n_fields), (g_struct_info_get_field),
2363 (g_struct_info_get_n_methods), (g_struct_info_get_method),
2364 (find_method), (g_struct_info_find_method),
2365 (g_enum_info_get_n_values), (g_enum_info_get_value),
2366 (g_object_info_get_parent), (g_object_info_get_type_name),
2367 (g_object_info_get_type_init), (g_object_info_get_n_interfaces),
2368 (g_object_info_get_interface), (g_object_info_get_n_fields),
2369 (g_object_info_get_field), (g_object_info_get_n_properties),
2370 (g_object_info_get_property), (g_object_info_get_n_methods),
2371 (g_object_info_get_method), (g_object_info_find_method),
2372 (g_object_info_get_n_signals), (g_object_info_get_signal),
2373 (g_object_info_get_n_vfuncs), (g_object_info_get_vfunc),
2374 (g_object_info_get_n_constants), (g_object_info_get_constant),
2375 (g_interface_info_get_n_prerequisites),
2376 (g_interface_info_get_prerequisite),
2377 (g_interface_info_get_n_properties),
2378 (g_interface_info_get_property), (g_interface_info_get_n_methods),
2379 (g_interface_info_get_method), (g_interface_info_find_method),
2380 (g_interface_info_get_n_signals), (g_interface_info_get_signal),
2381 (g_interface_info_get_n_vfuncs), (g_interface_info_get_vfunc),
2382 (g_interface_info_get_n_constants),
2383 (g_interface_info_get_constant), (g_property_info_get_flags),
2384 (g_signal_info_get_flags), (g_signal_info_get_class_closure),
2385 (g_signal_info_true_stops_emit), (g_vfunc_info_get_flags),
2386 (g_vfunc_info_get_offset), (g_vfunc_info_get_signal),
2387 (g_constant_info_get_value), (g_union_info_get_n_fields),
2388 (g_union_info_get_field), (g_union_info_get_n_methods),
2389 (g_union_info_get_method), (g_union_info_is_discriminated),
2390 (g_union_info_get_discriminator_offset),
2391 (g_union_info_get_discriminator):
2392 * src/ginvoke.c: (g_function_info_invoke):
2393 * src/girepository.c: (g_irepository_register),
2394 (g_irepository_unregister), (g_irepository_get_default),
2395 (count_interfaces), (g_irepository_get_n_infos), (find_interface),
2396 (g_irepository_get_info), (g_irepository_find_by_name),
2397 (g_irepository_get_shared_library),
2398 (g_irepository_build_search_path), (g_irepository_register_file),
2399 (g_irepository_error_quark):
2400 * src/girepository.h:
2401 * src/gmetadata.c: (g_metadata_get_dir_entry),
2402 (g_metadata_check_sanity), (validate_header),
2403 (validate_array_type_blob), (validate_iface_type_blob),
2404 (validate_param_type_blob), (validate_error_type_blob),
2405 (validate_type_blob), (validate_arg_blob),
2406 (validate_signature_blob), (validate_function_blob),
2407 (validate_callback_blob), (validate_constant_blob),
2408 (validate_value_blob), (validate_field_blob),
2409 (validate_property_blob), (validate_signal_blob),
2410 (validate_vfunc_blob), (validate_struct_blob),
2411 (validate_enum_blob), (validate_object_blob),
2412 (validate_interface_blob), (validate_errordomain_blob),
2413 (validate_union_blob), (validate_blob), (validate_directory),
2414 (validate_annotations), (g_metadata_validate), (_g_metadata_init),
2415 (g_metadata_new_from_memory), (g_metadata_new_from_const_memory),
2416 (g_metadata_new_from_mapped_file), (g_metadata_free),
2417 (g_metadata_set_module), (g_metadata_get_namespace):
2419 * tests/Makefile.am:
2420 * tests/invoke/Makefile.am:
2421 * tests/invoke/invoke-namespace-find.sh:
2422 * tests/invoke/invoke.c: (main):
2424 Add a namespace/shared library mapping. fixes #313268.
2426 2007-12-03 Johan Dahlin <johan@gnome.org>
2428 * src/gidlparser.c (parse_type_internal): Disable char/gchar and
2431 2007-11-30 Jürg Billeter <j@bitron.ch>
2437 * src/gen-introspect.c: (g_idl_node_cmp), (g_igenerator_new),
2438 (g_igenerator_write_inline), (g_igenerator_write),
2439 (g_igenerator_write_indent), (g_igenerator_write_unindent),
2440 (field_generate), (value_generate), (constant_generate),
2441 (property_generate), (function_generate), (vfunc_generate),
2442 (signal_generate), (interface_generate), (struct_generate),
2443 (union_generate), (boxed_generate), (enum_generate),
2444 (node_generate), (module_generate), (get_type_from_type_id),
2445 (str_replace), (g_igenerator_process_properties),
2446 (g_igenerator_process_signals), (g_igenerator_process_types),
2447 (get_type_from_ctype), (g_igenerator_process_function_symbol),
2448 (g_igenerator_process_unregistered_struct_typedef),
2449 (g_igenerator_process_struct_typedef),
2450 (g_igenerator_process_union_typedef),
2451 (g_igenerator_process_enum_typedef),
2452 (g_igenerator_process_function_typedef),
2453 (g_igenerator_process_constant), (g_igenerator_process_symbols),
2454 (g_igenerator_add_symbol), (g_igenerator_is_typedef),
2455 (g_igenerator_generate), (main), (csymbol_new),
2456 (csymbol_get_const_boolean), (ctype_new), (ctype_copy),
2457 (cbasic_type_new), (ctypedef_new), (cstruct_new), (cunion_new),
2458 (cenum_new), (cpointer_new), (carray_new), (cfunction_new),
2459 (eat_hspace), (eat_line), (read_identifier),
2460 (g_igenerator_parse_macros):
2461 * src/gen-introspect.h:
2463 Import gen-introspect to generate introspection information by
2466 2007-11-30 Jürg Billeter <j@bitron.ch>
2468 * src/gidlnode.c: (g_idl_node_new): support creating callback nodes
2470 2007-11-30 Jürg Billeter <j@bitron.ch>
2472 * src/gidlparser.c: (end_element_handler): Don't leave requires
2475 2007-11-29 Johan Dahlin <johan@gnome.org>
2477 * src/gidlparser.c (parse_type_internal): Add char,
2478 gchar and guchar to the builtin types.
2480 2007-11-26 Johan Dahlin <johan@gnome.org>
2482 * src/ginfo.c: (g_object_info_get_type_name),
2483 (g_object_info_get_type_init):
2484 * src/girepository.c: (g_irepository_is_registered):
2485 * src/girepository.h:
2487 Add g_object_info_get_type_name, g_object_info_get_type_init and
2488 g_irepository_is_registered.
2490 2006-08-14 Jürg Billeter <j@bitron.ch>
2492 * src/gidlparser.c: (end_element_handler): Don't leave
2493 namespace and implements states too early.
2496 2007-11-26 Johan Dahlin <johan@gnome.org>
2498 * src/gmetadata.c (validate_struct_blob):
2499 pass blob_type to validate_function_blob instead of
2500 hard-coding BLOB_TYPE_STRUCT.
2502 Patch by Torsten Schoenfeld, fixes #314190
2504 2006-10-03 Torsten Schoenfeld <tsch@cvs.gnome.org>
2506 * src/compiler.c, src/generate.c, src/gidlnode.c,
2507 src/gidlparser.c, src/ginfo.c, src/girepository.c,
2508 tests/invoke/invoke.c, test/invoke/testfns.c: Hush compiler
2509 warnings about return values, signedness mismatches, unused
2510 variables, and unhandles enum values in switch statements.
2512 * tests/invoke/Makefile.am: Don't install the invoke test program.
2513 Add -I ../../src to the cflags used for the test functions files.
2515 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
2517 * src/girepository.h: Export g_invoke_error_quark.
2519 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
2521 * src/ginvoke.c: Remove the fallback implementation of
2522 g_function_info_invoke since we now formally depend on libffi.
2524 2005-07-25 Matthias Clasen <mclasen@redhat.com>
2526 * src/Makefile, tests/Makefile, tests/invoke/Makefile:
2527 Remove these files from cvs, as they are now generated.
2529 * src/gmetadata.c (validate_iface_type_blob): Don't
2530 complain if blob->pointer is not set, since that
2531 happens for enum and flag types. (#308935, Gustavo
2534 * Commit an autoconf-conversion patch by
2535 Gustavo Carneiro (#308708)
2537 2005-05-24 Matthias Clasen <mclasen@redhat.com>
2539 * src/compiler.c (main): Use it here to validate
2540 the generated metadata.
2542 * src/gmetadata.[hc]: Add code to validate a
2545 * metadata-format.txt: Updates
2547 2005-05-22 Matthias Clasen <mclasen@redhat.com>
2549 * tests/*: Add struct offsets to field and vfunc
2552 * src/generate.c (write_vfunc_info): Write offset
2553 information for vfuncs.
2555 * src/gidlnode.c (g_idl_node_build_metadata): Write
2556 the struct offsets into the metadata.
2558 * src/gidlparser.c: Parse the offset attributes of
2559 field and vfunc elements.
2561 * src/gidlnode.h: Add offset members to field and
2564 2005-05-21 Matthias Clasen <mclasen@redhat.com>
2568 * gidl.dtd: Updates.
2570 * src/g-idl-offsets.pl: A perl script which reads a .gidl
2571 file, creates, compiles and runs a C file, and folds the
2572 resulting struct offsets back into the .gidl file.
2574 2005-05-20 Matthias Clasen <mclasen@redhat.com>
2576 * src/gidlparser.c (start_field): Make fields in objects
2579 * src/gidlmodule.c: Include string.h
2584 * metadata-format.txt: Cleanup basic types.
2585 * src/*: Adapt to the changes.
2586 * tests/*: Adapt to the changes.
2587 * examples/gdk-pixbuf.gidl: Adapt to the changes.
2589 * src/gidlnode.c (g_idl_node_get_size): Report the correct
2590 size for enum blobs.
2591 (g_idl_node_get_full_size): Report the correct size for
2594 * src/gidlmodule.c (g_idl_module_build_metadata): Add some
2595 error checking for blob sizes.
2597 2005-05-19 Matthias Clasen <mclasen@redhat.com>
2599 * src/gidlnode.c (g_idl_node_build_metadata): Correctly handle
2600 interface types for which is_pointer is FALSE, e.g. enums.
2602 * src/gidlnode.c (g_idl_node_get_full_size)
2603 * src/gidlparser.c (parse_type_internal):
2604 * src/generate.c (write_type_info): Support unspecialized
2605 lists, hashtables and errors. Also emit a '*' after these.
2609 2005-05-17 Matthias Clasen <mclasen@redhat.com>
2613 * metadata-format.txt: Cleanups by Maciej Katafiasz.
2615 2005-05-15 Matthias Clasen <mclasen@redhat.com>
2617 * src/*.c: Change the directory to be addressed by
2618 1-based indexes, and use an index of zero to mean
2621 2005-05-15 Matthias Clasen <mclasen@redhat.com>
2623 * tests/roundtrips.sh (SIMPLE_TESTS): Add union.test.
2625 * tests/union.test: Add a union test.
2627 * src/generate.c: Handle unions.
2629 * src/girepository.h:
2630 * src/ginfo.c: Add GIUnionInfo and functions to access it.
2632 * src/gidlnode.c: Handle GIdlNodeUnion nodes.
2634 * src/gidlparser.c (start_union): Parse <union> elements.
2636 * src/gidlnode.h: Add a GIdlNodeUnion.
2638 * gidl.dtd: Add a <union> element.
2640 * src/gmetadata.c (g_metadata_check_sanity): Check
2643 * src/gmetadata.h: Add union_blob_size to Header,
2646 * metadata-format.txt: Add a UnionBlob.
2648 2005-05-13 Matthias Clasen <mclasen@redhat.com>
2650 * tests/*: Update testcases.
2652 * src/generate.c (write_callable_info): Don't forget to
2653 write transfer and null-ok attributes for return types
2656 * src/girepository.h:
2657 * src/ginfo.c (g_callable_info_may_return_null):
2658 New function to find out if a function may return NULL.
2660 * src/compiler.c (format_output): Make the generated
2663 * README: Point to a recent libffi snapshot.
2665 * tests/invoke/*: Some invoke tests.
2667 * src/Makefile: Add ginvoke.c and the necessary
2670 * src/girepository.h (g_function_info_invoke): Add
2673 * src/ginvoke.c (g_function_info_invoke): Initial
2674 implementation of invoke functionality based on libffi.
2676 * src/gidlnode.c (g_idl_node_build_metadata): Pass the
2677 strings and types hash tables in the right order when
2679 (find_entry_node): Free the name parts.
2681 2005-05-12 Johan Dahlin <johan@gnome.org>
2683 * src/generate.c: Generate consistent end tags.
2687 2005-05-12 Matthias Clasen <mclasen@redhat.com>
2691 * src/gidlparser.c (start_function): Actually add
2692 methods to objects. (Steven Walter)
2694 * src/girepository.h:
2695 * src/ginfo.c: Rename Transfer and Direction to
2696 GITransfer and GIDirection. (Torsten Schoenfeld)
2698 * tests/*: Make tests work with the changes in name
2701 * src/gidlnode.c (find_entry_node): Parse qualified
2702 names and generate xref nodes for them if needed. Don't
2703 require all modules to be loaded any more.
2705 * src/gidlmodule.c (g_idl_module_build_metadata): Choke
2708 * src/ginfo.c (g_object_info_get_parent): Return NULL
2709 if blob->parent is 0. Still need to make sure index
2712 * src/generate.c: Generate qualified names when
2713 referring to non-local types. Emit transfer attribute
2716 * src/compiler.c (format_output): Put the function
2717 attributes where gcc accepts them.
2719 2005-05-11 Matthias Clasen <mclasen@redhat.com>
2721 * src/compiler.c (main): Add a --verbose cmdline option
2722 and only log messages if it is specified.
2725 * src/gidlnode.c (init_stats, dump_stats): Collect some
2726 statistics on string and type sharing.
2728 * src/gidlmodule.c (g_idl_module_build_metadata): Use
2729 g_message() instead of fprintf().
2731 * src/gidlnode.c (g_idl_node_free): Make this more robust.
2732 (g_idl_node_get_size): Implement for structs.
2733 (g_idl_node_get_full_size): Handle parent being NULL.
2734 (serialize_type): Handle lookup failures more gracefully.
2736 2005-05-10 Matthias Clasen <mclasen@redhat.com>
2738 * src/gidlnode.c (g_idl_node_get_full_size): Correct the
2739 size calculation for 2-parameter types and for objects.
2741 * src/compiler.c: Add a cmdline option for debug output
2742 and install a log handler to implement it.
2743 * src/gidlnode.c: Add some debug spew.
2747 * src/gidlmodule.c (g_idl_module_build_metadata): Don't
2748 forget to count the module name when calculating the
2749 required size for the metadata.
2752 * src/gidlparser.c: Fix compiler warnings.
2754 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2756 * src/compiler.c (main): Free the option context.
2758 * gidl.dtd: Clean up handling of names. All elements
2759 have a "name", only the elements corresponding to
2760 actual callable functions (function, method, constructor),
2761 have an additional "symbol" attribute holding the
2762 dlsym()-able function name.
2764 * src/generate.c: Adapt to generate xml matching the
2768 * src/gidlnode.c: Adapt to parse the new dtd.
2770 * tests/*.test: Adjust to the new dtd.
2772 * metadata-format.txt:
2773 * src/gmetadata.h: Remove the short_name field
2775 * src/gmetadata.c: Shrink size of ValueBlob to 12.
2776 * src/girepository.h:
2777 * src/ginfo.c (g_value_info_get_short_name): Removed
2779 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2781 * gidl.dtd: Allow constructors for boxed types,
2782 patch by Jonathan Blandford.
2785 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2787 * --- Initial import ---