1 2008-11-20 Johan Bilien <jobi@via.ecp.fr>
3 * tests/everything/everything.[ch]: add a test function which calls a
6 2008-11-19 Johan Dahlin <jdahlin@async.com.br>
8 * giscanner/cachestore.py:
9 Catch ValueError exceptions.
11 2008-11-18 Tommi Komulainen <tommi.komulainen@iki.fi>
13 * tests/scanner/Makefile.am (barapp_SOURCES): fix builddir != srcdir
15 2008-11-18 Andreas Rottmann <a.rottmann@gmx.at>
17 * girepository/girnode.c (g_ir_node_build_typelib): Use sizeof()
18 instead of hard-coding struct sizes.
20 2008-11-18 Owen Taylor <otaylor@redhat.com>
22 Bug 561296 - Add "storage type" to the typelib data for enums
24 In order to set and get enum and flag fields in structures, we need
25 to know the integral type that the enumeration is stored as. We are already
26 computing that at compile time in order to compute struct offsets, so the
27 easiest thing to do is to save that in the typelib.
29 * docs/typelib-format.txt girepository/girnode.[ch] girepository/giroffsets.c
30 girepository/gtypelib.h: Add 'storage_type' to the typelib format for EnumBlob
31 and compute and save it at compile time.
33 * girepository/girepository.h girepository/ginfo.c:
34 Add g_enum_info_get_storage_type().
36 * girepository/gfield.c: Implement reading and writing enum and flags fields
37 based on the storage type.
39 2008-11-18 Owen Taylor <otaylor@redhat.com>
41 Add enums to the Everything test module
43 * tests/everything/everything.[ch]: Add TestEnum and TestFlags to the Everything
44 test module and register them as GTypes.
46 https://bugzilla.gnome.org/show_bug.cgi?id=561296
48 2008-11-18 Johan Dahlin <jdahlin@async.com.br>
50 * giscanner/cachestore.py:
51 Catch BadPickleGet exceptions as well.
53 2008-11-17 Owen Taylor <otaylor@redhat.com>
55 * tests/everything/everything.c: Fix doc comment annotations
56 for test_struct_b_clone() to refer to the right function.
58 2008-11-17 Dan Winship <danw@gnome.org>
60 * giscanner/glibtransformer.py (GLibTransformer.__init__): fix
61 spelling of GHashTable. #561135
63 * tests/scanner/annotation.c (annotation_object_get_hash):
64 * tests/scanner/annotation-1.0-expected.gir:
65 * tests/scanner/annotation-1.0-expected.tgir: add a test of
66 GHashTable annotations
68 2008-11-17 Andreas Rottmann <a.rottmann@gmx.at>
70 * giscanner/ast.py: Change string array match type to be in terms
71 of canonicalized type.
72 * giscanner/transformer.py: Add canonicalize_ctype which gives us
73 a version of a c:type without aliases, so we can deep canonicalize
74 char** to utf8*. Update parse_ctype to use it.
75 * tests/*: Add gtk_init like int*/char*** arg functions for testing.
77 2008-11-16 Colin Walters <walters@verbum.org>
79 * girepository/girepository.c: Ensure we always call init_globals,
80 even if passed a non-default repository.
82 2008-11-16 Colin Walters <walters@verbum.org>
84 Bug 559706 - Interface prerequisites
86 * common.mk: Dep on libgirepository.la for scanner libs so that
87 we rebuild things even if just gdump.c changes.
88 * girepository/gdump.c: Dump prerequisites.
89 * giscanner/ast.py: Add prerequisite list.
90 * giscanner/girparser.py: Parse them from gdump.
91 * giscanner/girwriter.py: Write them.
92 * giscanner/glibtransformer.py: Resolve them.
95 2008-11-16 Owen Taylor <otaylor@redhat.com>
97 Bug 561087 - Respect is_pointer in serialize_type()
99 Add a '*' to the serialization for the cases where we set is_pointer
100 in the type blob we write out depending on node->is_pointer. Don't
101 add the '*' in the cases where is_pointer is set or not set in a
104 http://bugzilla.gnome.org/show_bug.cgi?id=561087
106 2008-11-16 Owen Taylor <otaylor@redhat.com>
108 Bug 560825 – Add size and alignment to typelib
110 Include the size and alignment of structures and unions in the typelib,
111 and add getter methods to retrieve them from GIStructInfo/GIUnionInfo.
113 * docs/typelib-format.txt girepository/gtypelib.h girepository/girnode.c
114 girepository/girmodule.c girepository/gtypelib.c: Add size and alignment
115 to StructBlob and UnionBlob.
117 * girepository/ginfo.c girepository/girepository.h:
118 Add g_[struct|union]_get[size|alignment]().
120 * test/offsets/gen-gitestoffsets: Test overall structure size and alignment.
122 2008-11-16 Owen Taylor <otaylor@redhat.com>
124 Bug 552371 – implement struct field get/set
126 * girepository/gfield.c girepository/girepository.h: Add
127 convenience functions g_field_info_set_field() and
128 g_field_info_get_field() to set and get fields based on the
129 offsets in GIFieldInfo.
131 2008-11-16 Andreas Rottmann <a.rottmann@gmx.at>
133 Bug 560241 - Out-arguments should not be marked as being pointers
136 * girepository/girparser.c: Improved logic for out arguments.
138 2008-11-16 Andreas Rottmann <a.rottmann@gmx.at>
140 Bug 559601 - Pointers in structs/unions unduly treated as arrays
142 * giscanner/transformer.py: Differentiate type creation logic
143 between parameters and struct components.
145 2008-11-15 Colin Walters <walters@verbum.org>
147 * giscanner/dumper.py: Check return code from pkg-config
150 2008-11-14 Johan Dahlin <jdahlin@async.com.br>
152 * tests/everything/everything.c (test_array_int_in),
153 (test_array_gtype_in):
154 * tests/everything/everything.h:
155 Rename the int/gtype array tests. Make the return value
156 useful, an aggregation of the array input values.
158 2008-11-14 Johan Dahlin <jdahlin@async.com.br>
160 * tests/everything/Makefile.am:
161 * tests/everything/everything.c:
162 * tests/everything/everything.h:
163 * tests/everything/gitesttypes.c:
164 * tests/everything/gitesttypes.h:
165 Rename gitesttypes.[ch] to everything.[ch]
167 2008-11-13 Andreas Rottmann <a.rottmann@gmx.at>
169 Bug 560708 – Don't treat arrays that have a length specified as
170 zero-terminated by default
172 * giscanner/transformer.py: Default to non zero terminated for
174 * tests/*: Update, add test for zero vs not.
176 2008-11-13 Andreas Rottmann <a.rottmann@gmx.at>
178 Bug 557788 - Return types for constructors in generated typelib bogus
180 * girepository/girnode.c: Namespace-qualify XREFs; not doing so is
181 obviously broken in the face of duplicate names in different
183 * tests/scanner/*expected.gir: Fix up.
185 2008-11-13 Owen Taylor <otaylor@redhat.com>
187 * girepository/girffi.c: Fix "Unexpected time for time_t"
190 2008-11-13 Colin Walters <walters@verbum.org>
192 Bug 558436 - avoid having scanner load app code
194 * giscanner/cgobject.py: Delete; we no longer load shared
196 * giscanner/dumper.py: Support for linking a library to
197 a stub binary for introspection.
198 * giscanner/glibtransformer.py: Rewrite to use gdump XML
199 from invocation of child binary.
200 * giscanner/transformer.py: Fix up to use fully qualified
201 name in parse tree. Make parse_ctype public so we can use
202 it inside glibtransformer.
203 * tests/scanner/barapp.c: New test, using --program arg
205 * tests/*: Update to use common.mk for invoking scanner.
206 * tools/g-ir-scanner: Add options --program, --program-arg,
208 * docs/g-ir-scanner.1: Update.
210 2008-11-13 Colin Walters <walters@verbum.org>
212 * configure.ac: Depend on Gio, we use it in gdump.c.
213 * girepository/gdump.c: Code to dump GType data to XML.
214 * girepository/girepository.c: Add option group for dumping.
215 * girepository/girepository.h: Define API for the above.
217 2008-11-13 Colin Walters <walters@verbum.org>
219 * common.mk: Add a file to include with Makefile fragments
220 useful for scanner invocation.
222 2008-11-13 Tommi Komulainen <tommi.komulainen@iki.fi>
224 * tests/everything/gitesttypes.c (test_filename_return): Return
225 strings in filename encoding.
227 2008-11-13 Owen Taylor <otaylor@redhat.com>
229 Bug 560253 – Add structure and boxed types to Everything test module
231 * tests/everything/gitesttypes.[ch]: Add examples of:
233 Plain old data structs
234 Plain old data structs with nested fields
236 Plain old data boxed with nested fields
237 More complicated boxed types with internal state
239 2008-11-12 Johan Dahlin <jdahlin@async.com.br>
241 * tests/everything/gitesttypes.c (test_gtype_in):
242 * tests/everything/gitesttypes.h:
243 Add a test of GType arrays, a la gtk_list_store_set_columns.
245 2008-11-12 Owen Taylor <otaylor@redhat.com>
247 Bug 560419 – Cache includes when parsing
249 Keep track of all modules parsed within a GIrParser, and when a
250 module is referenced a second time, use the existing parsed copy
251 instead of reparsing.
253 2008-11-12 Owen Taylor <otaylor@redhat.com>
255 Fix management of ParseContext.includes_modules (#560419)
257 * girepository/girparser.c: Fix some trivial bugs in managing the
258 list of include modules. (Add to module's list twice, not
259 initialized to NULL, not freed.)
261 2008-11-12 Owen Taylor <otaylor@redhat.com>
263 Keep aliases and disguised_structures local to each module (#560419)
265 * girepository/girmodule.[ch]: When parsing, keep keep a separate
266 hash tables of aliases and 'disguised' flags for each module, and
267 store that on the module.
269 After parsing an include merge the aliases/disguised flags to the
272 * girepository/girparser.c: Remove 'prefix_aliases' flag and
273 always prefix aliases/disguised structure types when parsing; this
274 simplifies the code considerably.
276 2008-11-12 Owen Taylor <otaylor@redhat.com>
278 Fix mismatches between .gir name and 'name' attribute (#560419)
280 * tests/boxed.gir tests/constant.gir tests/enum.gir tests/invoke/invoke.c
281 tests/invoke/testfns-1.0.gir tests/object.gir tests/struct.gir: Fix places
282 where the 'name' element of <namespace/> didn't match the filename of the
283 gir, an assumption that the compiler has always expected and now enforces.
285 2008-11-12 Owen Taylor <otaylor@redhat.com>
287 Only allow one <namespace/> element per <repository/> (#560419)
289 * girepository/girparser.c: The logic in girparser.c didn't work
290 very well if there were multiple <namespace/> nodes within a
291 single <repository/> (context->namespace was always the overall
292 filename and not the the name specified in the <namespace/>
293 element for one thing; this would cause aliases to be mis-prefixed
294 in include modules.) Also check that the "name" in the
295 <namespace/> node matches the filename.
297 2008-11-12 Owen Taylor <otaylor@redhat.com>
299 Add a GirParser object to hold the state of a compilation
301 * girepository/girparser.[ch] tools/compiler.c: Add a toplevel
302 GirParser object to hold state that is global across a
303 compilation. Currently just holds the include path, but will
304 eventually also keep a cached list of parsed modules.
306 2008-11-12 Tommi Komulainen <tommi.komulainen@iki.fi>
308 * girepository/girepository.c (find_namespace_latest): Fix
311 2008-11-12 Tommi Komulainen <tommi.komulainen@iki.fi>
313 * configure.ac: use 'introspection' component for bugs
315 2008-11-12 Johan Dahlin <jdahlin@async.com.br>
317 * tests/everything/gitesttypes.c (test_filename_return):
318 * tests/everything/gitesttypes.h:
319 Add a filename return test.
321 2008-11-12 Tommi Komulainen <tommi.komulainen@iki.fi>
323 * tests/offsets/Makefile.am (gitestoffsets.c): fix
324 gen-gitestoffsets invocation with builddir != srcdir
326 2008-11-12 Johan Dahlin <jdahlin@async.com.br>
328 * girepository/girepository.c:
329 Change the element type from utf8 to filename
330 * girepository/girnode.c (g_ir_node_build_typelib):
331 Special case filename equally to utf8 here.
333 2008-11-12 Johan Dahlin <jdahlin@async.com.br>
336 Remove unused variables, add a dependency of girepository.ch, so when
337 they change we rebuild the gir automatically.
339 2008-11-12 Johan Dahlin <jdahlin@async.com.br>
341 * girepository/girepository.c (g_irepository_get_search_path):
342 * girepository/girepository.h:
343 Add a g_irepository_get_search_path, so we can access the search
346 2008-11-12 Johan Bilien <jobi@via.ecp.fr>
348 Bug 560474 – g-ir-compiler crashes when compiling the glib gir
350 * girepository/girparser.c: avoid freeing an uninitialized pointer
352 2008-11-12 Johan Dahlin <jdahlin@async.com.br>
355 * giscanner/glibtransformer.py:
356 * tools/g-ir-scanner:
357 Add a GIRepository-2.0.gir. Change the libtool lookup slightly
358 so we can just pass in --library=foo/bar/baz.la and the scanner
359 does the right thing.
360 Don't warn for _get_type() functions if they don't take any
363 2008-11-11 Owen Taylor <otaylor@redhat.com>
365 Bug 560404 – Prefix types when resolving aliases in included modules
367 * girepository/girparser.c: When resolving aliases in an included
368 module, prefix types before looking them up.
370 2008-11-11 Owen Taylor <otaylor@redhat.com>
372 Compute field offsets and overall size for object structures
374 Bug 560326 – Fails to build Gtk-2.0.typelib with "Unexpected non-pointer
375 field of type object in structure"
377 Do basic computation of field offsets for objects and interfaces;
378 this doesn't attempt to address all of the "mess" for virtual
379 functions described in Bug 560281.
381 2008-11-11 Tommi Komulainen <tommi.komulainen@iki.fi>
383 Bug 560308 – g-ir-compiler goes in infinite loop on Gdk-2.0.gir
385 Based on patch by Johan Bilien.
387 * giscanner/transformer.py (_create_member, _create_parameter):
388 Resolve types here as well.
389 (_resolve_type_name_1): Try resolving using 'ctype' first since
390 it's least ambiguous. Fixes struct member type resolution with
391 similarly named types, e.g. Gdk.PangoRendererClass and
393 * tests/scanner/foo*: Add test.
395 2008-11-11 Owen Taylor <otaylor@redhat.com>
397 * girepository/girparser.c: Search provided include dirs before
398 the default directories.
400 2008-11-11 Owen Taylor <otaylor@redhat.com>
402 * girepository/giroffsets.c: Include fully-qualified names in
405 2008-11-11 Owen Taylor <otaylor@redhat.com>
407 * girepository/giroffsets.c: Fail gracefully with an informative
408 error message when recursion is encountered when computing a
411 2008-11-11 Owen Taylor <otaylor@redhat.com>
413 * girepository/girparser.c: Remove an unused variable.
415 2008-11-10 Owen Taylor <otaylor@redhat.com>
417 Add tests for field offset computations
419 * tests/offsets/offsets.h: Header file with structure definitions to test
421 * tests/offsets/gen-gitestoffsets: Generate a C program that computes
422 field offsets for the structures in offsets.h two ways: using
423 the information from a generated typelib, and as computed by the
426 We diff these two versions to test that everything is OK.
428 2008-11-10 Owen Taylor <otaylor@redhat.com>
430 Remove field offsets from g-ir-generate output and test inputs
432 Field offsets are a) architecture dependent so they shouldn't be part
433 of the architecture-independent gir format which is installed in
434 datadir. b) Are architecture-dependent so they shouldn't be in test
437 * girepository/girparser.c: Don't parse offset for fields
438 * tools/generate.c: Don't parse offset for fields
439 * tests/*.gir test/scanner/*.tgir: Remove offsets
441 (Virtual function and discriminator offsets are not removed, as they
442 aren't fully hooked up to the field-offset computation machinery yet.)
444 2008-11-10 Owen Taylor <otaylor@redhat.com>
446 Bug 560252 - Compute field offsets before writing typelib
448 * girepository/girnode.h: Store the total size and alignment for
449 GIrNodeStruct/Boxed/Union.
451 * girepository/giroffset.c: New file implementing computation of
452 structure field offsets.
454 * girepository/girnode.c: Compute structure field offsets before
455 writing types into the typelib.
457 * docs/typelib-format.txt: Document that a field offset of 0xFFFF
458 means "unknown". Also fix description of the discriminator_offset
461 2008-11-10 Owen Taylor <otaylor@redhat.com>
463 Bug 560250 - Fully parse included modules
465 For some things, like computing structure offsets to put into the typelib
466 we need more than just the aliases from included modules. Do a completel
467 parse of included modules and store in module->included_modules.
469 Also add g_ir_find_node() to find node information from within the
470 active set of modules and their includes.
472 2008-11-10 Owen Taylor <otaylor@redhat.com>
474 Split g_ir_ffi_get_ffi_type() out from ginvoke.c
476 Extract a function to convert GITypeTag to ffi_type from the internals
477 of ginvoke.c. This will be useful in figure out structure alignment.
479 Also fix handling of gsize and time_t to be portable. (Add a check
480 to configure.ac to figure out the width of time_t.)
482 2008-11-10 Owen Taylor <otaylor@redhat.com>
484 Bug 560248 – "disguised structures"
486 Certain types like GIConv and GdkAtom are pointers internally but don't
487 look like pointers when referenced. They have the form.
489 typedef struct _X *X;
491 Parse these as structures/records but mark them in the gir with a 'disguised'
492 attribute so that we know that they need special handling.
494 In the typelib treat them like any other structure.
496 2008-11-09 Jürg Billeter <j@bitron.ch>
499 * giscanner/girwriter.py:
501 Write throws attribute for virtual functions, fixes bug 559703
503 2008-11-07 Johan Dahlin <jdahlin@async.com.br>
505 * giscanner/libtoolimporter.py (LibtoolImporter.find_module): Clear
506 up some confusion about the second argument to find_module, it's
507 actually the packages __path__ attribute which we can safely ignore
509 (LibtoolImporter.load_module): Set module.__loader__ as per PEP 302.
511 2008-11-07 Owen Taylor <otaylor@redhat.com>
513 Bug 559737 – Deal with continuations in macros
515 * giscanner/giscannerlexer.l: Treat continuation lines the same
516 as regular newlines. This makes the scanner not complain about
517 #define foo(x) \ <stuff> inside a C file. There's no attempt
518 however to handle parsing macro definitions split across lines.
520 2008-11-07 Johan Dahlin <jdahlin@async.com.br>
522 * giscanner/cachestore.py:
523 Handle broken cache entries, write only filesystems and
524 running out of diskspace.
526 2008-11-07 Owen Taylor <otaylor@redhat.com>
528 * giscanner/giscannermodule.c (pygi_source_scanner_lex_filename):
529 Set current_filename before lexing the file so error messages
530 are reported in the right file.
532 2008-11-06 Colin Walters <walters@verbum.org>
534 * tests/everything/*: Add some tests for strv.
536 2008-11-05 Colin Walters <walters@verbum.org>
538 * girepository/ginvoke.c (g_function_info_invoke): Don't use
539 nested scope local variable for error which may go away after
540 conditional is complete.
542 2008-11-05 Colin Walters <walters@verbum.org>
544 * giscanner/scannerlexer.l: Avoid static 256 char buf which we
545 manipulate hackily; just use GString. This avoids an
546 uninitialized memory read pointed out by Havoc.
548 2008-11-04 Johan Dahlin <jdahlin@async.com.br>
550 * giscanner/__init__.py:
552 * giscanner/cachestore.py:
553 * giscanner/cgobject.py:
554 * giscanner/girparser.py:
555 * giscanner/girwriter.py:
556 * giscanner/giscannermodule.c:
557 * giscanner/glibast.py:
558 * giscanner/glibtransformer.py:
559 * giscanner/libtoolimporter.py:
560 * giscanner/minixpath.py:
561 * giscanner/odict.py:
562 * giscanner/sourcescanner.c:
563 * giscanner/sourcescanner.h:
564 * giscanner/sourcescanner.py:
565 * giscanner/transformer.py:
566 * giscanner/utils.py:
567 * giscanner/xmlwriter.py:
569 Relicense the giscanner library under LGPLv2+.
570 This has been approved by all contributors.
572 2008-11-01 Owen Taylor <otaylor@redhat.com>
574 Bug 558848 giparser.py: shared library should be optional
576 When parsing a .gir, allow the shared-library attribute
577 of <namespace/> to be missing: this corresponds to the handling
578 in libgirepository and elsewhere.
580 2008-11-01 Tommi Komulainen <tommi.komulainen@iki.fi>
582 Bug 557898 – Fails to build on OSX 10.4
584 * configure.ac: Check for $shrext_cmds that should be implicitly
585 available if you're using libtool >= 2.0. If undefined, call
586 libtool --config explicitly to get its value.
587 * girepository/gtypelib.c: Remove special case for (non-)Darwin
590 2008-10-31 Colin Walters <walters@verbum.org>
592 * COPYING, COPYING.lib, COPYING.tools: Clarify licensing status.
594 2008-10-31 Johan Dahlin <jdahlin@async.com.br>
596 * configure.ac: Post release version bump
599 2008-10-31 Johan Dahlin <jdahlin@async.com.br>
603 * docs/release-checklist.txt:
606 2008-10-31 Johan Dahlin <jdahlin@async.com.br>
608 * Makefile.am: add an upload-release target
609 * docs/release-checklist.txt:
610 Release process documentation
612 2008-10-31 Colin Walters <walters@verbum.org>
614 Bug 558109 – _g_typelib_init fails to find shared libraries
616 * transformer/glibtransformer.py: Use ctypes' find_library
617 on passed libraries and write that for the shared-library
618 entry. We want to avoid depending on -devel packages.
620 2008-10-31 Johan Dahlin <jdahlin@async.com.br>
622 * docs/g-ir-scanner.1:
623 Document the renaming options.
625 2008-10-31 Tommi Komulainen <tommi.komulainen@iki.fi>
627 * giscanner/Makefile.am:
628 * tests/invoke/Makefile.am:
629 * tests/repository/Makefile.am: List in-tree libraries first in
630 LDADD / LIBADD. If installed library is listed first, the
631 resulting binary will prefer installed version to one in .libs,
632 possibly making 'make check' behave strangely.
634 2008-10-30 Tommi Komulainen <tommi.komulainen@iki.fi>
636 * giscanner/ast.py: map 'id' (ObjC) to 'any' type to stop
637 gir-repository from choking with gdk/quartz
639 2008-10-30 Johan Dahlin <jdahlin@async.com.br>
641 * giscanner/giscannermodule.c (calc_attrs_length),
642 (pygi_collect_attributes):
643 * giscanner/xmlwriter.py:
644 Write a C version of the xml namespace formatter.
645 Saves 15% of the time it takes to create a gtk gir.
647 2008-10-30 Johan Dahlin <jdahlin@async.com.br>
649 * giscanner/xmlwriter.py: Abstract attribute formatting
650 to a function external to the XMLWriter class.
652 * giscanner/scannerlexer.l:
653 Parse and discard __typeof and __attribute.
655 2008-10-30 Johan Dahlin <jdahlin@async.com.br>
657 * giscanner/girparser.py:
658 Remove arguments from the constructor, move them to
659 separate accessors. Add a new parse_tree method
660 which takes an element tree instance.
661 * tools/g-ir-scanner:
662 Update callsite for this
664 * giscanner/Makefile.am:
665 * giscanner/cachestore.py:
666 * giscanner/transformer.py:
667 Cache the include parsing. Saves ~25% time when
668 creating vte (which includes everything up to gtk+).
670 2008-10-30 Colin Walters <walters@verbum.org>
672 * giscanner/transformer.py: Don't reparse includes
673 we've already processed.
675 2008-10-30 Johan Dahlin <jdahlin@async.com.br>
677 * giscanner/girparser.py:
678 * giscanner/transformer.py:
679 Avoid parsing parameters, types etc when parsing
680 includes. Should speed up include parsing a bit.
682 2008-10-30 Johan Dahlin <jdahlin@async.com.br>
684 * giscanner/girparser.py:
685 Avoid big if/else and use a dispatch table like
688 2008-10-30 Johan Dahlin <jdahlin@async.com.br>
690 * giscanner/transformer.py:
691 Clean up include parsing and registration.
693 2008-10-30 Johan Dahlin <jdahlin@async.com.br>
695 * giscanner/transformer.py:
698 2008-10-30 Johan Dahlin <jdahlin@async.com.br>
700 Bug 558383 – builddir != srcdir build fails if giscanner python module not already installed
703 construct PYTHONPATH just once
705 * tests/everything/Makefile.am:
706 * tests/scanner/Makefile.am:
707 add $(top_srcdir) to PYTHONPATH to
708 handle builddir != srcdir
710 * giscanner/libtoolimporter.py:
711 * giscanner/sourcescanner.py:
712 Make the libtoolimporter work when distchecking too.
714 Mostly based on patch by Tommi Komulainen
716 2008-10-29 Owen Taylor <otaylor@redhat.com>
718 * giscanner/glibtransformer.py: If a filename of an existing
719 file is passed to --library, hunt for it directly, rather than
720 searching for a corresponding library.
722 2008-10-29 Johan Dahlin <jdahlin@async.com.br>
724 * giscanner/libtoolimporter.py:
725 * giscanner/sourcescanner.py:
726 Clean up the libtool importer a bit. Add a context so we
727 can use it through a with statement.
728 Don't just look in the current directory, look in the whole
731 2008-10-29 Tommi Komulainen <tommi.komulainen@iki.fi>
733 Bug 558065 – gitesttypes should be installed
737 * tests/types/Makefile.am -> tests/everything/Makefile.am
738 * tests/types/gitesttypes.c -> tests/everything/gitesttypes.c
739 * tests/types/gitesttypes.h -> tests/everything/gitesttypes.h
740 move tests/types to tests/everything
742 * tests/everything/Makefile.am: build normal shared library
743 libgirepository-everything.so.1.0.0 and corresponding typelib
744 Everything-1.0.typelib
746 * tests/everything/Makefile.am: explicitly link libtool
747 versioning with typelib versioning with variables
749 2008-10-28 Johan Bilien <jobi@via.ecp.fr>
751 * tools/g-ir-scanner: add LD_LIBRARY_PATH to LPATH before calling ld.
753 2008-10-27 Johan Bilien <jobi@via.ecp.fr>
755 * gio/gio-2.0.c: add allow-none annotations, based on the pygobject
758 2008-10-27 Johan Bilien <jobi@via.ecp.fr>
760 Bug 558068 – when invoking a method, offset the in arguments by one,
763 * tests/invoke/invoke.c, tests/invoke/testfns.c,
764 tests/invoke/testfns-1.0.gir: Add testing of method and constructor.
765 * girepository/ginvoke.c: do not offset the index of given out
766 arguments by one for methods, "this" is provided as in argument only.
768 2008-10-27 Johan Bilien <jobi@via.ecp.fr>
770 * gir/gio-2.0.c: add annotation for g_file_delete
772 2008-10-27 Tommi Komulainen <tommi.komulainen@iki.fi>
774 Bug 558062 – provide and use paths in the .pc file
776 * gobject-introspection-1.0.pc.in: provide typelibdir variable
777 for where .typelibs should be installed (callers shouldn't need
778 to construct paths from bits and pieces)
780 2008-10-25 Andreas Rottmann <a.rottmann@gmx.at>
782 Bug 557791 – g_irepository_require() could return a GTypelib *
784 * girepository/girepository.c: Return GTypelib; this is useful
785 for low level manipulation.
787 2008-10-25 Colin Walters <walters@verbum.org>
789 Bug 557788 – Return types for constructors in generated typelib bogus
791 * giscanner/glibtransformer.py: Don't resolve ctors incrementally,
792 rely on end pass resolution.
794 2008-10-25 Andreas Rottmann <a.rottmann@gmx.at>
796 Bug 557786 - support fixed size arrays
798 * girepository/ginfo.c: Add g_type_info_get_array_fixed_size.
799 * giscanner/scannerparser.y: Retain fixed array size.
800 * giscanner/ast.py: Add to note.
801 * giscanner/girwriter.py: Write to gir.
802 * girepository/girnode.c: Write it to typelib.
803 * tools/generate.c: Generate.
804 * tests/*: Add tests.
806 2008-10-25 Colin Walters <walters@verbum.org>
808 Bug 557076 - move typelibs to $libdir
810 * configure.ac: Steal some configury bits from dbus to expand
812 * gir/Makefile.am: Move to libdir.
813 * girepository/girepository.c: Stop searching XDG_DATA_DIRS;
814 instead just look at one hardcoded path in libdir.
815 * acinclude.m4: Bits from dbus.
817 2008-10-24 Johan Dahlin <johan@gnome.org>
819 * girepository/girnode.c (g_ir_node_check_unhandled_members):
820 Be quiet, do not warn about unhandled members.
822 2008-10-24 Johan Dahlin <johan@gnome.org>
824 * girepository/gtypelib.c:
825 Only use SHLIB_SUFFIX on darwin, otherwise use
826 G_MODULE_SUFFIX, we cannot get shext_cmds from libtool 2.2.
828 2008-10-24 Lucas Rocha <lucasr@gnome.org>
830 Bug 557623 - Constructors shouldn't be flagged as methods.
832 * girepository/ginfo.c (g_function_info_get_flags): ditto.
834 2008-10-24 Johan Dahlin <johan@gnome.org>
836 * giscanner/scannerparser.y:
837 Check against division by zero for the modula operator.
838 This fixes header parsing of OSX system headers included
841 2008-10-24 Johan Dahlin <johan@gnome.org>
845 Add a CONTRIBUTORS file and dist it.
847 2008-10-23 Tommi Komulainen <tommi.komulainen@iki.fi>
849 Bug 556739 – transfer-ownership attribute should be mandatory in .gir
851 * girepository/girparser.c (parse_param_transfer):
852 * giscanner/transformer.py (_create_parameter, _create_return):
853 * giscanner/girwriter.py (_write_return, _write_parameter):
854 * tools/generate.c (write_callable_info): always write and
855 require "transfer-ownership" for return-values and parameters
858 * tests/invoke/testfns-1.0.gir:
860 * tests/scanner/DrawableAdditions.xml:
861 * tests/scanner/GtkFrob-1.0-expected.tgir:
862 * tests/scanner/annotation-1.0-expected.tgir:
863 * tests/scanner/drawable-1.0-expected.tgir:
864 * tests/scanner/drawable-injected-1.0-expected.gir:
865 * tests/scanner/drawable-injected-1.0-expected.tgir:
866 * tests/scanner/foo-1.0-expected.tgir: Updated
868 2008-10-23 Tommi Komulainen <tommi.komulainen@iki.fi>
870 * giscanner/cgobject.py: build fundamental types same way as glib
872 * giscanner/glibtransformer.py (_type_from_gtype): record GType
873 when constructing the Type from it
875 * giscanner/glibtransformer.py (_adjust_transfer): Check whether
876 the parameter is a GObject from its GType, if available.
878 * giscanner/glibtransformer.py (_adjust_transfer):
879 * tests/scanner/foo-1.0-expected.gir:
880 * tests/scanner/foo-1.0-expected.tgir: deduce
881 transfer-ownership from GTypes
883 2008-10-23 Tommi Komulainen <tommi.komulainen@iki.fi>
885 * giscanner/transformer.py (_create_parameter):
886 * tests/scanner/foo-1.0-expected.gir: make varargs
887 transfer-ownership="none"
889 2008-10-23 Colin Walters <walters@verbum.org>
891 Bug 556739 - transfer ownership
893 * giscanner/ast.py: Refactor Parameter/Return to share
894 common attributes. Add transfer_inferred attribute
895 which says whether or not we made a guess.
896 * giscanner/transformer.py: Add much more extensive
897 heuristics around parameter and return transfer.
898 * giscanner/glibtransformer.py: Adjust to inspect
902 2008-10-22 Tommi Komulainen <tommi.komulainen@iki.fi>
904 Bug 557377 – Add test to ensure annotations survive the roundtrip via typelib
906 * tests/scanner/Makefile.am:
907 * tests/scanner/annotation-1.0-expected.tgir:
908 * tests/scanner/drawable-1.0-expected.tgir:
909 * tests/scanner/drawable-injected-1.0-expected.tgir:
910 * tests/scanner/foo-1.0-expected.tgir:
911 * tests/scanner/GtkFrob-1.0-expected.tgir:
912 * tests/scanner/utility-1.0-expected.tgir: Add test to ensure
913 annotations survive the roundtrip via typelib
915 The expectations are as currently produced by g-ir-generate,
916 comparison with the .gir files shows there are differences.
918 2008-10-23 Johan Bilien <jobi@via.ecp.fr>
920 Bug 557468 – Support for GI_TYPELIB_PATH
922 * girepository/girepository.c: if the GI_TYPELIB_PATH is set, add the
923 provided paths to the global search path.
925 2008-10-22 Tommi Komulainen <tommi.komulainen@iki.fi>
927 Bug 557379 – g-ir-generate not writing the 'abstract' attribute
929 * tests/scanner/drawable-1.0-expected.tgir:
930 * tests/scanner/drawable-injected-1.0-expected.tgir:
931 * tests/scanner/foo-1.0-expected.tgir:
932 * tools/generate.c (write_object_info): write 'abstract'
933 attribute for classes
935 2008-10-22 Lucas Rocha <lucasr@gnome.org>
937 * girepository/girmodule.c, girepository/gtypelib.c,
938 girepository/girparser.[ch]: fix some build warnings.
940 2008-10-22 Tommi Komulainen <tommi.komulainen@iki.fi>
942 Bug 557405 – Use 'allow-none' consistently
944 * docs/typelib-format.txt:
945 * girepository/ginfo.c (g_arg_info_may_be_null):
946 * girepository/girnode.c (g_ir_node_build_typelib):
947 * girepository/girnode.h (struct _GIrNodeParam):
948 * girepository/girparser.c (start_parameter):
949 * girepository/girwriter.c (function_generate):
950 * girepository/gtypelib.h (ArgBlob):
952 * tests/function.gir:
953 * tools/generate.c (write_callable_info): Use 'allow-none'
954 consistently throughout
956 2008-10-22 Tommi Komulainen <tommi.komulainen@iki.fi>
958 Bug 557092 – Callback annotations not used
960 * giscanner/transformer.py (_create_callback): use annotations
962 * tests/scanner/annotation.h
963 * tests/scanner/annotation-1.0-expected.gir: add tests
965 2008-10-21 Colin Walters <walters@verbum.org>
967 * giscanner/scannerlexer.l: Don't require trailing whitespace after
968 uncommented parameters.
971 2008-10-21 Colin Walters <walters@verbum.org>
973 * girepository/girepository.c: Ensure that when doing an unversioned
974 require, we prefer items earlier in the search path to later ones.
976 2008-10-21 Owen Taylor <otaylor@redhat.com>
978 * giscanner/transformer.py: For string parameters allow transfer annotation
979 to override the standard automatic guessing based on 'const'.
981 2008-10-21 Johan Bilien <jobi@via.ecp.fr>
983 Bug 557241 – "throws" flag for functions
985 * tests/scanner/drawable-1.0-expected.gir,
986 tests/scanner/drawable-injected-1.0-expected.gir,
987 tests/scanner/drawable.[ch]: add simple test for throwing
988 function (has GError ** as last argument)
990 * giscanner/ast.py: add a 'throws' flag to Function
991 * giscanner/glibtransformer.py: if a function's last paramerter is
992 a GError, set the 'throws' flag and remove that parameter
993 * giscanner/girwriter.py: write out the 'throws' attribute
994 * giscanner/girparser.py: support parsing the 'throws' attribute
996 * tests/repository/gitestthrows.c: add a simple test to check the
997 throws flag in a typelib and invoke the function
999 * girepository/ginfo.c, girepository/girnode.[ch],
1000 girepository/girnode.h, girepository/girparser.c,
1001 girepository/girepository.h: Add and parse the GI_FUNCTION_THROWS flag
1003 * girepository/ginvoke.c: if a function throws, add a GError as last
1004 arguments, and propagate the error to the invoker.
1006 2008-10-21 Tommi Komulainen <tommi.komulainen@iki.fi>
1008 * giscanner/transformer.py (_create_parameters): Warn if we see
1009 annotations for unknown parameters. If .h and .c files name
1010 parameters differently, the annotations may be lost.
1012 2008-10-21 Johan Dahlin <johan@gnome.org>
1014 Bug 556358 - don't use libtool internals
1016 * giscanner/Makefile.am:
1017 * giscanner/libtoolimporter.py:
1018 * giscanner/sourcescanner.py:
1019 * giscanner/utils.py:
1020 Add a python meta importer and remove a libtool symlink hack.
1022 2008-10-20 Andreas Rottmann <a.rottmann@gmx.at>
1024 * tests/scanner/Makefile.am (%.typelib): Set PYTHONPATH
1025 and --add-include-path appropriately when invoking the scanner.
1026 * tests/types/Makefile.am (%typelib): Likewise.
1028 2008-10-20 Colin Walters <walters@verbum.org>
1030 Bug 556777 - validate properties
1032 * giscanner/transformer.py: Add option to throw on unknown types.
1033 * giscanner/glibtransformer.py: Use it on properties.
1034 * tests/*: Add a test.
1036 2008-10-20 Colin Walters <walters@verbum.org>
1038 * giscanner/glibast.py: Also register g variants of
1039 default_array_types. This is not beautiful, but
1040 good alternatives aren't easy to come by.
1041 This fixes gchar ** parsing.
1043 2008-10-20 Colin Walters <walters@verbum.org>
1045 * docs/typelib-format.txt, girepository/gtypelib.h:
1046 Take a bit from ObjectInfo to represent abstract flag.
1047 * giscanner/cgobject.py: Expose g_type_get_flags.
1048 * girepository/girepository.h: Add accessor.
1049 * girepository/ginfo.c: Implement it.
1050 * giscanner/ast.py: Add is_abstract flag to generic
1052 * giscanner/glibast.py: Use it.
1053 * giscanner/girwriter.py: Write it.
1054 * girepository/girparser.c: Parse it.
1057 2008-10-20 Tommi Komulainen <tommi.komulainen@iki.fi>
1059 * giscanner/girparser.py (_parse_function): don't lose
1060 'transfer-ownership' attributes when injecting, check for the
1063 2008-10-19 Johan Dahlin <johan@gnome.org>
1065 * giscanner/scannerlexer.l: Parse and ignore __asm.
1067 2008-10-19 Colin Walters <walters@verbum.org>
1069 * giscanner/girparser.py: Parse array length= to ensure
1070 it doesn't get lost from --inject.
1072 2008-10-17 Colin Walters <walters@verbum.org>
1074 Bug 556795 - char ** regression
1076 * giscanner/transformer.py: Fix parsing of ctypes, add some
1077 comments about what's going on.
1078 * tests/*: Add a test for char **.
1080 2008-10-17 Colin Walters <walters@verbum.org>
1082 Bug 556783 - change namespace handling to be more consistent
1084 * giscanner/transformer.py: Eliminate usage of
1085 strip_namespace_object. We now treat --namespace as the default
1086 --strip-prefix; however, if --strip-prefix is specified it
1087 overrides --namespace. This applies to everything except function
1088 names, where we do also strip the namespace.
1089 * giscanner/glibtransformer.py: Remove usage of
1090 strip_namespace_object.
1092 * tests/*: Add skeletal GtkFrob-1.0 test which has different
1093 --namespace and --strip-prefix.
1095 2008-10-17 Tommi Komulainen <tommi.komulainen@iki.fi>
1097 Bug 556732 – generate gir files consistently
1099 * girepository/girparser.c (start_parameter):
1101 * tests/invoke/testfns-1.0.gir:
1102 * tools/generate.c (write_callable_info): write
1103 'transfer-ownership' attribute consistently with both
1104 return-value and parameter elements
1106 2008-10-17 Tommi Komulainen <tommi.komulainen@iki.fi>
1108 Bug 556732 – generate gir files consistently
1110 * tools/generate.c (write_callable_info): write 'direction'
1111 attribute only if other than 'in' to be consistent with
1114 * tests/object.gir: remove direction="in" which is the default
1116 2008-10-17 Tommi Komulainen <tommi.komulainen@iki.fi>
1118 Bug 556732 – generate gir files consistently
1120 * giscanner/ast.py (Field): add readable and writable properties
1121 * giscanner/girparser.py (_parse_field): copy 'readable' and
1122 'writable' attributes
1123 * giscanner/transformer.py (_create_member): create fields as
1125 * giscanner/glibtransformer.py (_introspect_object,
1126 _pair_class_struct): make object instance and class fields
1128 * giscanner/girwriter.py (_write_field):
1129 * tools/generate.c (write_field_info): write field 'readable'
1130 and 'writable' attributes only if non-default (read-only)
1131 * girepository/girparser.c (start_field): in the absence of
1132 attributes assume fields are read-only
1134 * tests/struct.gir: remove redundant readable="1" from fields
1135 * tests/scanner/foo-1.0-expected.gir:
1136 * tests/scanner/utility-1.0-expected.gir: add writable="1" to
1137 all record and union fields
1139 2008-10-17 Tommi Komulainen <tommi.komulainen@iki.fi>
1141 Bug 556732 – generate gir files consistently
1143 * giscanner/girwriter.py (_write_property): write properties
1144 'construct' attribute if set
1145 * tools/generate.c (write_property_info): write properties
1146 'readable' and 'writable' attributes only if non-default
1147 * tests/object.gir: add writable="0"
1148 * tests/scanner/foo-1.0-expected.gir: add construct="1"
1150 2008-10-17 Johan Bilien <jobi@via.ecp.fr>
1152 * gir/glib-2.0.c: added annotations
1154 2008-10-16 Johan Bilien <jobi@via.ecp.fr>
1156 * giscanner/ast.py: Also assume direction=out for size_t*, ssize_t*
1159 2008-10-16 Johan Bilien <jobi@via.ecp.fr>
1161 Bug 556610 – giscanner/girparser.py drops parameter options
1163 * tests/scanner/drawable-injected-1.0-expected.gir,
1164 tests/scanner/DrawableAdditions.xml: added simple test for injection.
1165 * giscanner/ast.py: allow Parameter to take options in the constructor
1166 * giscanner/girparser.py: parse parameter options (transfer,
1167 direction, allow-none)
1169 2008-10-16 Colin Walters <walters@verbum.org>
1171 Bug 556185 - segfault on g_callable_info_get_return_type
1173 Initial patch from John Ehresman.
1175 * tests/repository/*: Add a test using
1176 g_callable_info_get_return_type. Instead of casting a
1177 GITypeInfo directly to a GIRegisteredTypeInfo, we need
1178 to call g_type_info_get_interface.
1180 2008-10-16 Colin Walters <walters@verbum.org>
1182 Bug 556579 - union and struct name misresolved
1184 * giscanner/transformer.py: The calls to _resolve_type_name
1185 for struct/union names was a legacy holdover from when type
1186 resolution had multiple phases. Now it's actively harmful
1187 since we might pull in an identical name from another
1191 2008-10-16 Colin Walters <walters@verbum.org>
1193 Bug 556432 - transfer annotations and defaults
1195 * giscanner/transformer.py: Canonicalize type
1196 after removing *, not before. This ensures that
1197 guchar* is transformed to 'uint8'.
1198 Add some comments here.
1199 * giscanner/glibtransformer.py: Add _adjust_transfer
1200 phase for tweaking GObject transfers.
1203 2008-10-16 Tommi Komulainen <tommi.komulainen@iki.fi>
1205 * configure.ac: enable bunch of gcc warning CFLAGS
1207 2008-10-16 Tommi Komulainen <tommi.komulainen@iki.fi>
1209 Bug 556543 – reduce compiler warnings
1211 * girepository/ginfo.c:
1212 * girepository/girepository.c (register_internal,
1213 count_interfaces, find_interface, find_namespace_version,
1214 parse_version, g_irepository_require):
1215 * girepository/girmodule.c (g_ir_module_build_typelib):
1216 * girepository/girnode.c (init_stats, dump_stats,
1217 _g_irnode_init_stats, _g_irnode_dump_stats,
1218 g_ir_node_can_have_member):
1219 * girepository/girparser.c (firstpass_end_element_handler,
1220 locate_gir, parse_basic, parse_type_internal, resolve_aliases,
1221 start_alias, start_type, end_type_top, parse_include, cleanup,
1223 * girepository/gtypelib.c (validate_function_blob, validate_enum_blob):
1224 * giscanner/giscannermodule.c (directive_get_options,
1225 type_get_child_list):
1226 * giscanner/scannerlexer.l (parse_gtkdoc):
1227 * giscanner/scannerparser.y (ctype_free):
1228 * giscanner/sourcescanner.c:
1229 * giscanner/sourcescanner.h (gi_source_scanner_parse_macros):
1230 * tests/types/gitesttypes.c:
1231 * tools/compiler.c (main):
1232 * tools/generate.c (write_repository): Remove unused variables
1233 and code, add missing includes, declarations and case
1236 2008-10-16 Tommi Komulainen <tommi.komulainen@iki.fi>
1238 Bug 556541 – access union members through UnionBlob rather than
1241 * girepository/ginfo.c (g_union_info_find_method): access union
1242 members through UnionBlob rather than StructBlob
1244 2008-10-15 Colin Walters <walters@verbum.org>
1246 Bug 556331 - clean up includes handling
1248 * tools/g-ir-scanner: Rework command line arguments; now we take
1249 --add-include-path and --include separately.
1250 * giscanner/girwriter.py: Separate name= and version= in include
1252 * giscanner/ast.py: Add Include type.
1253 * giscanner/transformer.py: Cleanups to register_include now that
1254 we don't need to handle mixed filenames and relative arguments.
1255 * girepository/girparser.c: Parse name and version separately;
1256 this fixes a bug as a side effect where we weren't resolving
1257 through aliases for basic types.
1258 * girepository/girepository.c: Fix format string args.
1259 * gir/Makefile.am: Update.
1262 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
1264 Bug 556434 – unhandled interface/object/... member types
1266 * girepository/girnode.c (g_ir_node_check_unhandled_members,
1267 g_ir_node_build_typelib): Check all
1268 interface/object/boxed/struct/union members are processed and
1269 abort if they are not. (Mostly callbacks in structs, but also
1270 fields in interfaces.)
1272 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
1274 * a/girepository/girnode.c (g_ir_node_build_members,
1275 g_ir_node_build_typelib): refactor common code for processing
1276 members to a function
1278 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
1280 * gir/Makefile.am (check-local): check that typelib -> gir -> typelib
1281 transformation is lossless (it's not)
1283 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
1285 * tests/Makefile.am: fix tests to compare xml to xml instead of
1286 typelib to xml, and stop on error
1288 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
1290 * tools/generate.c (write_type_name, write_type_info,
1291 write_type_info, write_object_info, write_object_info,
1292 write_interface_info, write_error_domain_info): reduce code
1295 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
1297 Bug 556174 – parse types for lists etc.
1299 * girepository/girparser.c (end_type_recurse):
1301 * tools/generate.c (write_type_info, write_field_info,
1302 write_callable_info, write_callable_info, write_constant_info,
1303 write_property_info): use nested <type>s for lists and hashes
1305 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
1308 * tests/object.gir: remove trailing whitespace from inside
1309 elements to match g-ir-generate output
1311 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
1313 * tools/generate.c (xml_printf): quote printf arguments so that
1314 we don't generate invalid XML by writing unescaped double quotes
1315 and such in attributes
1317 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
1319 * tools/generate.c (write_field_info, write_callable_info,
1320 write_function_info, write_callback_info, write_struct_info,
1321 write_constant_value, write_signal_info, write_vfunc_info,
1322 write_object_info, write_interface_info, write_union_info,
1323 write_repository): remove unused indent parameters, xmlwriter
1324 keeps track of necessary indentation
1326 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
1328 * tools/generate.c (xml_element_new, xml_element_free,
1329 xml_start_element, xml_end_element, xml_end_element_unchecked,
1330 xml_open, xml_close): Keep track of generated XML tree and
1331 handle indentation and closing tags properly.
1332 (write_field_info, write_callable_info, write_function_info,
1333 write_callback_info, write_struct_info, write_value_info,
1334 write_constant_info, write_enum_info, write_signal_info,
1335 write_vfunc_info, write_property_info, write_object_info,
1336 write_interface_info, write_error_domain_info, write_union_info,
1337 write_repository): Use xml_start_element and xml_end_element to
1340 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
1342 * tools/generate.c (xml_printf, xml_open, xml_close, xml_free):
1343 (write_type_name, write_type_info, write_field_info,
1344 write_callable_info, write_function_info, write_callback_info,
1345 write_struct_info, write_value_info, write_constant_value,
1346 write_constant_info, write_enum_info, write_signal_info,
1347 write_vfunc_info, write_property_info, write_object_info,
1348 write_interface_info, write_error_domain_info, write_union_info,
1349 write_repository): wrap all FILE access to go through simple xmlwriter
1351 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
1353 Bug 556400 – Fails to build on OS X 10.4
1355 * configure.ac: check for functions backtrace and backtrace_symbols
1356 * girepository/girparser.c (backtrace_stderr): Comment out
1357 implementation if the functions are not available.
1358 * gcov.mak (clean-gcov, clean-gcno): always call 'find' with a
1359 directory for better portability
1361 2008-10-15 Johan Bilien <jobi@via.ecp.fr>
1363 Bug 556433 – assume direction = out for int * parameters
1365 * giscanner/ast.py: define a list of types for which, if passed as
1366 reference, we assume a default direction of 'out'
1367 * giscanner/transformer.py: if a type has type pointer to one of the
1368 previously defined types, and no direction is set, assume out.
1369 * tests/scanner/drawable.[ch]: added tests for guessed direction=out
1371 2008-10-15 Johan Bilien <jobi@via.ecp.fr>
1373 * tests/scanner/annotation.c: fixed a few copy-paste errors
1375 2008-10-14 Johan Bilien <jobi@via.ecp.fr>
1377 Bug 556323 – transfer-ownership is wrong for functions returning const
1380 * giscanner/transformer.py: check for a const string as return value,
1381 not just const char*. Suggested by Colin Walters
1382 * tests/scanner/annotation-1.0-expected.gir: updated expected output
1384 2008-10-14 Johan Bilien <jobi@via.ecp.fr>
1386 * girepository/ginfo.c, girepository/girepository.h: add
1387 g_union_info_find_method
1389 2008-10-14 Colin Walters <walters@verbum.org>
1391 * tests/repository/Makefile.am: Reenable repo test.
1392 * tests/repository/gitestrepo.c: Prepend search
1393 path for $(top_builddir)/gir dir so that we don't
1394 require installation for "make check" to pass.
1396 2008-10-13 Jürg Billeter <j@bitron.ch>
1398 * giscanner/glibtransformer.py:
1399 * tests/scanner/annotation-1.0-expected.gir:
1400 * tests/scanner/drawable-1.0-expected.gir:
1401 * tests/scanner/foo-1.0-expected.gir:
1402 * tests/scanner/utility-1.0-expected.gir:
1404 Support fields in GObject structs
1406 2008-10-13 Jürg Billeter <j@bitron.ch>
1408 * giscanner/ast.py: add signed integer and off_t to type_names
1410 2008-10-12 Jürg Billeter <j@bitron.ch>
1412 * giscanner/girparser.py: Parse bits attribute of fields
1414 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
1416 * tests/repository/Makefile.am: run 'gitestrepo' in 'make check'
1417 * tests/repository/gitestrepo.c (main): instantiate
1418 'GCancellable' to ensure the GType is registered before using
1421 2008-10-12 Johan Bilien <jobi@via.ecp.fr>
1423 * giscanner/girparser.py: actually add the parsed constant nodes
1425 2008-10-12 Colin Walters <walters@verbum.org>
1427 * girepository/girepository.c: Don't cast DirEntry to Blob,
1428 actually look it up by offset.
1430 2008-10-12 Johan Bilien <jobi@via.ecp.fr>
1432 * giscanner/girparser.py: parse constant nodes in gir files
1434 2008-10-12 Johan Bilien <jobi@via.ecp.fr>
1436 * giscanner/transformer.py: prefix for constants have an underscore,
1437 so remove them as if they were functions, not objects.
1439 2008-10-12 Johan Bilien <jobi@via.ecp.fr>
1441 * tests/scanner/foo-1.0-expected.gir: add constants to expected gir
1444 2008-10-12 Colin Walters <walters@verbum.org>
1446 Initial patch from Jani Monoses.
1448 * girepository/gtypelib.c: Fix inverted test for success
1451 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
1453 * tools/generate.c (write_callable_info): use "transfer-ownership"
1454 attribute for return values
1456 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
1458 * tools/generate.c (write_callable_info): move "transfer" and
1459 "null-ok" attributes from <function> to <return-value> element
1461 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
1463 * girepository/girparser.c (start_return_value): handle
1464 "transfer-ownership" attribute
1466 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
1468 * girepository/girparser.c (parse_param_transfer):
1469 * tools/generate.c (write_callable_info): use "container" for
1470 container/shallow ownership transfer (not "shallow")
1472 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
1474 * girepository/girparser.c (parse_param_transfer,
1475 start_parameter): Refactor handling of transfer=none/shallow/full
1476 to separate function
1478 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
1480 Bug 556048 – Crash in g_irepository_find_by_gtype
1482 * girepository/gtypelib.h (BLOB_IS_REGISTERED_TYPE): added
1483 * girepository/girepository.c (find_interface): Fix
1484 find_by_gtype case to get the type name from right offset
1486 2008-10-12 Jürg Billeter <j@bitron.ch>
1488 * giscanner/girparser.py: Fix parsing transfer-ownership attribute
1491 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
1493 * girepository/gtypelib.h (RegisteredTypeBlob): make
1494 'unregistered' one bit wide as everywhere else
1496 2008-10-12 Jürg Billeter <j@bitron.ch>
1498 * giscanner/glibtransformer.py:
1499 * tests/scanner/annotation-1.0-expected.gir:
1500 * tests/scanner/drawable-1.0-expected.gir:
1501 * tests/scanner/drawable.h:
1502 * tests/scanner/foo-1.0-expected.gir:
1503 * tests/scanner/utility-1.0-expected.gir:
1505 Readd class records as workaround to not break Gtk typelib
1507 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
1509 * tests/types/Makefile.am: fix typo in gitesttypes namespace
1511 2008-10-12 Jürg Billeter <j@bitron.ch>
1513 * giscanner/glibtransformer.py: Don't generate <record> elements
1515 * tests/scanner/*: Update test cases
1517 2008-10-11 Colin Walters <walters@verbum.org>
1519 Bug 552858: versioning
1521 This is a big patch. You should probably remove your installation
1524 * docs/typelib-format.txt: Add nsversion entry which holds
1525 version of namespace.
1526 * girepository/girepository.h: Add 'version' parameter to
1527 g_irepository_require. This may be NULL. Normally
1528 bindings should pass an explicit version though.
1529 * girepository/girepository.c: Lots of infrastructure to
1530 support versioning. Add some more documentation. Disallow
1531 some usage of NULL namespaces.
1532 * girepository/girmodule.c: Add version parameter.
1533 * girepository/gtypelib.c: Update header size.
1534 * giscanner/ast.py: Add version to Namespace.
1535 * giscanner/girparser.py: Parse version attribute from
1536 XML, pass to Namespace.
1537 * giscanner/girwriter.py: Write out version parameter.
1538 * giscanner/transformer.py: Clean up include registration.
1539 * tests/*: Add version attribute.
1540 * tests/invoke/invoke.c: Don't try looking up test before
1541 it's loaded in repository.
1542 * tools/generate.c: Output version parameter.
1543 * gir/Makefile.am: Add 2.0 version to .gir files.
1545 2008-10-11 Colin Walters <walters@verbum.org>
1547 * giscanner/scannerlexer.l (parse_gtkdoc): Don't lose
1548 if we have mismatched parens.
1550 2008-10-11 Lucas Rocha <lucasr@gnome.org>
1552 * giscanner/girparser.py (_parse_enumeration_bitfield): fix typo
1553 on 'members' variable.
1555 2008-10-11 Colin Walters <walters@verbum.org>
1557 Bug 555947 - update annotations syntax
1559 * giscanner/ast.py: Default to None for transfer. Remove
1560 default transfers for container types; we require this to
1562 * giscanner/girwriter.py: Transfer is now 'none', 'container',
1563 'full' to match repository.
1564 * giscanner/scannerlexer.l: Annotations now are parenthesized.
1565 * giscanner/transformer.py: Update for new annotations syntax.
1568 2008-10-11 Johan Bilien <jobi@litl.com>
1570 * giscanner/scannerparser.y: ignore non-UTF-8 string constants
1572 2008-10-11 Johan Bilien <jobi@litl.com>
1574 Bug 552347: Parse #defines constants
1576 * girepository/gtypelib.c: update the list of value_size
1577 with recently defined type tags
1578 * giscanner/scannerparser.y: brought back parsing of #defined, as
1579 present in older version
1580 * giscanner/giscannermodule.c: bind gi_source_scanner_append_filename
1581 * giscanner/girwriter.py: write out constant tags in the gir
1582 * giscanner/sourcescanner.py: add accessor for const_string
1583 * giscanner/transformer.py, giscanner/glibtransformer.py: handle
1586 2008-10-11 Tommi Komulainen <tommi.komulainen@iki.fi>
1588 Bug 555946: Install a test module exercising all types, transfer
1593 * tests/types/*: Add and install a test module that has functions
1594 accepting and returning most of the basic types to enable bindings
1595 implementors to more easily test their type conversion routines.
1597 2008-10-11 Jürg Billeter <j@bitron.ch>
1599 Bug 552374: Const strings should be identified in the gir.
1601 * giscanner/transformer.py: support string memory management
1602 * tests/scanner/foo.h: use char * and const char *
1603 * tests/scanner/foo-expected.gir: test that
1605 2008-10-11 Johan Dahlin <johan@gnome.org>
1607 * giscanner/girparser.py:
1608 Also parse enums which are not glib types.
1610 2008-10-11 Lucas Rocha <lucasr@gnome.org>
1612 Bug 552370: add one more test for unsigned as a type, not as
1615 * giscanner/ast.py: add 'uint' type name for 'unsigned'.
1616 * test/scanner/foo.h: add function which uses unsigned as a type.
1617 * test/scanner/foo-expected.gir: test that.
1619 2008-10-11 Andreas Rottmann <a.rottmann@gmx.at>
1621 Bug 555712: Struct and union issues
1623 * giscanner/scannerparser.y (struct_declarator): Use information
1624 provided about the bit width of a field.
1625 * giscanner/transformer.py (Transformer._create_member): Pass the
1626 symbol's const_int member to the created field (it represents the
1628 * giscanner/girwriter.py (GIRWriter._write_field): Output 'bits'
1629 field attribute, if present.
1630 * giscanner/ast.py (Field): Add 'bits' member, specifying the
1631 width in bits of the field (only relevant for bitfields).
1634 * giscanner/transformer.py (Transformer._create_typedef_struct)
1635 (Transformer._create_typedef_union): Add calls to _create_struct()
1636 and _create_union(), respectively. This causes the scanner to
1637 generate output for fields of struct and union typedefs.
1640 2008-10-11 Jürg Billeter <j@bitron.ch>
1642 Bug 552370: unsigned not scanned properly
1644 * giscanner/scannerparser.y: combine basic types such as unsigned
1645 int and long long when scanning
1646 * tests/scanner/foo-expected.gir:
1647 * tests/scanner/foo.c: (foo_test_unsigned):
1648 * tests/scanner/foo.h: test that
1650 2008-10-11 Lucas Rocha <lucasr@gnome.org>
1652 Bug 554854: The --typelib-xml and --inject options should reuse
1653 giscanner parser/writer.
1655 * giscanner/ast.py: add constructor list to Struct and Union.
1656 Add new param in Return's contructor to define transfer.
1657 * giscanner/girparser.py: several additions to the parser in order
1658 to have parsing all nodes of the gir xml files.
1659 * tools/g-ir-scanner (typelib_xml_strip, inject): use gir parser
1660 and writer in --inject and --typelib-xml options.
1661 * giscanner/xmlwriter.py: ignore empty attributes instead of
1662 raising an error as this basically exposes a bug in GIRParser.
1663 This should be reverted as soon as the parser is fixed.
1665 2008-10-11 Lucas Rocha <lucasr@gnome.org>
1667 Bug 552376: scanner generates wrong names for enum members when
1668 there's no defined gtype.
1670 * giscanner/utils.py (strip_common_prefix): Always strip common
1671 prefix exactly up to the last "_", and not beyond.
1672 * tests/scanner/foo.h (FooEnumNoType): add FOO_ENUM_NEUF. The point
1673 here is that the first character after the last '_' should should be
1674 the same as the character in the same position on the type name.
1675 * tests/scanner/foo-expected.gir: test that
1677 2008-10-10 Lucas Rocha <lucasr@gnome.org>
1679 Bug 555293: append library_paths to LPATH env variable to work
1680 around a bug in find_library when using ldconfig.
1682 * tools/g-ir-scanner (main): ditto.
1684 2008-10-09 Lucas Rocha <lucasr@gnome.org>
1686 * girepository/girepository.c (register_internal): fix regression on
1687 invoke test case by making sure we load the global module in the
1688 typelib when dealing with inline typelibs.
1689 * girepository/gtypelib.c: a couple of coding style fixes.
1691 2008-10-06 Lucas Rocha <lucasr@gnome.org>
1693 Bug 555294: Add support for multiple shared libraries per typelib.
1695 * girepository/ginvoke.c (g_function_info_invoke),
1696 girepository/ginfo.c(g_registered_type_info_get_g_type): use
1697 g_typelib_symbol instead of g_module_symbol.
1698 * girepository/girepository.h: remove g_typelib_set_module and add
1700 * girepository/gtypelib.[ch] (find_some_symbol, _g_typelib_init,
1701 g_typelib_new_from_memory, g_typelib_new_from_const_memory,
1702 g_typelib_free, g_typelib_symbol): chnage GTypeLib to hold a list of
1703 modules instead of just one. The symbol lookup is now abstracted
1704 behind g_typelib_symbol which tries to find the passed symbol name in
1706 * giscanner/girwriter.py, tools/g-ir-scanner: change scanner to read
1707 and write shared_library attribute as a comma-separated list of libs.
1709 2008-10-06 Colin Walters <walters@verbum.org>
1711 * giscanner/transformer.py: Parse length= annotation as
1712 a parameter name, not a raw int.
1715 2008-10-03 Colin Walters <walters@verbum.org>
1717 Bug 551744: Non-GObject types aren't aggregating ctors and methods
1719 * girepository/gtypelib.c: Allow ctors/methods on struct,union,
1721 * giscanner/glibtransformer.py: Ditto, and GLibBoxed is also a
1725 2008-10-03 Colin Walters <walters@verbum.org>
1727 Bug 554576: scan problem with ev_selection_render_selection()
1729 * giscanner/transformer.py: Only do type resolution once we've
1730 scanned all types. What could happen before is that we'd strip
1731 the namespace from local type "EvSelection" => Selection, and
1732 then later pull a "Selection" from some other namespace because
1733 we hadn't yet seen the local EvSelection. This could come
1734 down to hash table ordering and other things so not easy
1735 to write a test for.
1737 2008-10-03 Lucas Rocha <lucasr@gnome.org>
1739 * giscanner/girwriter.py (_parser_member): fix the last parameter of
1740 GLibEnumMember constructor as it should be the enum member nick.
1742 2008-10-02 Colin Walters <walters@verbum.org>
1744 Bug 552961: remove this parameter for methods
1746 * giscanner/glibtransformer.py: Delete this parameter; it is
1748 * girepository/ginvoke.c: Insert this parameter for methods.
1749 * girepository/gtypelib.c: Remove no longer needed verification of
1750 method this parameter.
1753 2008-09-30 Dan Winship <danw@gnome.org>
1755 Bug 554490: g-ir-scanner gets confused by '\\'
1757 * giscanner/scannerlexer.l (chartext, stringtext): fix use of
1758 backslashes so it will correctly parse '\\' and "\\"
1760 * tests/scanner/annotation.c: add a use of '\\' to make sure that
1763 * giscanner/glibtransformer.py (GLibTransformer.count_type): typo
1765 2008-10-02 Colin Walters <walters@verbum.org>
1767 bug 552393: Note variadic functions
1769 * giscanner/scannerparser.y: Parse ellipsis. Refactor grammar
1770 to use parameter_list directly.
1771 * giscanner/sourcescanner.h: Add ellipsis csymbol type.
1772 * giscanner/ast.py: Add Varargs type.
1773 * giscanner/transformer.py: Check for ellipsis symbol, transform
1775 * girepository/girnode.h: Add varargs flag to in-memory nodes.
1776 Parse varargs functions, but filter them out before we start
1777 compiling the typelib.
1779 2008-10-02 Colin Walters <walters@verbum.org>
1781 Bug 554632: type tag for GType
1783 * girepository/girepository.h, girepository/girepository.c:
1784 Add type tag for GType - it's a special type we don't want
1785 to resolve to just "long".
1786 * docs/typelib-format.txt: Update.
1787 * girepository/girparser.c: Parse it.
1788 * giscanner/glibtransformer.py: Ensure we don't put GType in
1790 * tools/generate.c: Remove hardcoded type list.
1793 2008-09-30 Dan Winship <danw@gnome.org>
1795 Bug 554521: scanner generates wrong names for enum members with
1796 full type name prefix
1798 * giscanner/utils.py (strip_common_prefix): Fix this to strip the
1799 right amount when the entire "first" string is a prefix of
1802 * tests/scanner/foo.h (FooEnumFullname):
1803 * tests/scanner/foo-expected.gir: test that
1805 2008-09-29 Colin Walters <walters@verbum.org>
1807 Bug 552380: Array parameters should be marked in the gir
1809 * giscanner/ast.py: Default char** to utf8[], and guchar* to
1810 uint8[]. Add Array, List, and Map subclasses of Type;
1811 these types can be generic. Return transfer defaults
1812 to true if return value is string or container type.
1813 Delete Sequence type.
1814 * giscanner/scannerlexer.l: Syntax change for annotations;
1815 use <> since it's more readable.
1816 * giscanner/girwriter.py: Write out these changes.
1817 * giscanner/girparser.py: Parse them.
1818 * giscanner/transformer.py: Have a defined set of
1819 both list and map types. When creating a type,
1820 check if the ctype we've parsed is one of them,
1821 if so create a container type subclass as appropriate.
1822 * girepository/girparser.c: Parse in generic types.
1825 2008-09-27 Colin Walters <walters@verbum.org>
1827 * tools/g-ir-scanner: Add --inject option.
1829 2008-09-25 Colin Walters <walters@verbum.org>
1831 Remove non-repository types from GIR
1833 * giscanner/ast.py: The canonical name is 'utf8', not
1835 * giscanner/glibast.py: A few more glib type mappings.
1836 * girepository/girparser.c: We only parse repository types.
1837 * tests/*.gir: Update.
1839 2008-09-23 Colin Walters <walters@verbum.org>
1841 Bug 552566: Add time_t type
1843 We need a type for time_t since it's special in C, and just
1844 mapping it to long precluded bindings from handling it
1847 2008-09-19 Colin Walters <walters@verbum.org>
1849 Bug 552390: Handle capitialization like "DBus" more robustly
1851 The to_underscores function was designed for use against prefixed
1852 names; we need a separate function which will convert names like
1853 DBusFoo into dbus_foo, not d_bus_foo.
1855 2008-09-19 Colin Walters <walters@verbum.org>
1857 Add check to make sure we're not hitting out unresolved types
1859 Validate the "this" argument for methods
1861 Remove heuristic matching of methods to classes based on prefix
1863 It was a broken hack that dated from when we handled underscoring
1864 and capitalization conventions less well.
1866 2008-09-18 Colin Walters <walters@verbum.org>
1868 Bug 552384: Use SHLIB_SUFFIX intead of G_MODULE_SUFFIX for Darwin
1870 On Darwin, the suffix for installed shared libraries (.dylib) is
1871 different from loadable modules (.so). We use a bit of magic shell
1872 script from Behdad Esfahbod to figure out the right suffix.
1874 2008-09-15 Johan Dahlin <johan@gnome.org>
1876 * giscanner/sourcescanner.py (SourceType.type_qualifier): Add
1877 a wrapper for type_qualifier as well.
1879 2008-09-15 Colin Walters <walters@verbum.org>
1881 http://bugzilla.gnome.org/show_bug.cgi?id=552065
1883 * giscanner/ast.py: Add deprecation attributes.
1884 * giscanner/girwriter.py: Write out deprecation data.
1885 * girepository/girparser.c: Relax parsing; deprecated
1886 attribute now includes freeform string.
1887 * giscanner/scannerlexer.l: Parse Deprecated.
1888 * giscanner/transformer.py: Look for deprecated attribute
1890 * tests/scanner/*: Add a Deprecated test.
1892 2008-09-14 Tor Lillqvist <tml@novell.com>
1894 * tests/scanner/Makefile.am (%.typelib): Use $(EXEEXT).
1896 2008-09-14 Colin Walters <walters@verbum.org>
1898 * giscanner/glibtransformer.py: Ignore functions with
1901 2008-09-12 Colin Walters <walters@verbum.org>
1903 * giscanner/glibtransformer.py: Accept Gtk.Type as GType.
1905 2008-09-12 Colin Walters <walters@verbum.org>
1907 * giscanner/ast.py: Bind pid_t to INT for vte.
1909 2008-09-12 Colin Walters <walters@verbum.org>
1911 * giscanner/girparser.py: Parse c:type for boxed records/unions.
1912 * giscanner/glibast.py: Avoid overwriting ctype.
1913 * giscsanner/transformer.py: Try resolving types using the GType names.
1915 2008-09-12 Colin Walters <walters@verbum.org>
1917 * giscanner/minixpath.py: Code to run an "XPath"
1918 assertion against an XML tree, taken from
1919 gir-repository/gir/tests.py.
1920 * giscanner/Makefile.am: Ship it.
1921 * tools/g-ir-scanner: Add --xpath-assertions option.
1922 * gir/GLib-assertions.txt: Add a few assertions.
1923 * gir/Makefile.am: Run them.
1925 2008-09-11 Colin Walters <walters@verbum.org>
1927 http://bugzilla.gnome.org/show_bug.cgi?id=551737
1929 * giscanner/transformer.py: Fix strip_namespace_func to only strip
1930 prefix if it ends with _. Tweak callback stripping to determine
1931 based on presence of _ whether we need to use strip_namespace_func
1932 or strip_namespace_object.
1934 2008-09-09 Owen Taylor <otaylor@redhat.com>
1936 * docs/typelib-format.txt: Wether => Whether
1938 2008-09-08 Colin Walters <walters@verbum.org>
1940 * girepository/girparser.c: Default to "readable" for properties.
1941 * giscanner/ast.py: Add readable, writable etc.
1942 * giscanner/girwriter.py: Writ them.
1943 * giscanner/glibtransformer.py: Inspect them.
1946 2008-09-07 Colin Walters <walters@verbum.org>
1948 * giscanner/cgobject.py: Add comment.
1950 2008-09-07 Colin Walters <walters@verbum.org>
1952 * giscanner/cgobject.py: Also call g_thread_init.
1954 2008-09-07 Colin Walters <walters@verbum.org>
1956 * giscanner/transformer.py: Fix regression by not
1957 stripping prefix before stripping namespace for unions
1960 2008-09-06 Colin Walters <walters@verbum.org>
1962 * giscanner/transformer.py: If a namespace contains
1963 multiple caps, try stripping both gnomekeyring_ and
1966 2008-09-07 Johan Dahlin <johan@gnome.org>
1968 Bug 551162 – giscanner does not recognize asm and __asm__
1969 * giscanner/scannerlexer.l:
1970 Patch by Jani Monoses.
1972 2008-09-06 Colin Walters <walters@verbum.org>
1974 * girepository/girnode.c: Allow gtype_name
1975 and gtype_init in struct and union.
1976 * girepository/girparser.c: Parse glib:
1977 boxed bits for both structure and union.
1978 * girepository/gtypelib.c: Don't barf
1979 if structure is boxed.
1980 * giscanner/girparser.py: Parse new XML
1982 * giscanner/girwriter.py: Write out new
1984 * giscanner/glibast.py: Define new classes
1985 which are both Boxed and Struct/Union, as
1986 well as an "Other" for everything else.
1987 * giscanner/glibtransformer.py: Handle
1988 boxed types specially; we try to merge
1989 them with a struct/union if one exists,
1990 otherwise fall back to generic boxed.
1992 * tools/generate.c: Write out new format.
1994 2008-09-06 Johan Dahlin <johan@gnome.org>
1996 * giscanner/grealpath.h: Include stdlib.h
1998 * docs/g-ir-generate.1: Remove leading %
2000 2008-09-01 Colin Walters <walters@verbum.org>
2002 * girepository/girparser.c: Look at c:type to determine
2003 whether or not an item is a pointer.
2005 2008-09-01 Johan Dahlin <johan@gnome.org>
2007 * tests/scanner/Makefile.am:
2008 Set PYTHONPATH so the scanner can run
2009 even if you didn't install anything.
2011 2008-09-01 Johan Dahlin <johan@gnome.org>
2014 Post-release version bump
2017 2008-09-01 Johan Dahlin <johan@gnome.org>
2021 2008-08-31 Colin Walters <walters@verbum.org>
2023 * giscanner/glibtransformer.py: Quiet info
2026 2008-08-31 Johan Dahlin <johan@gnome.org>
2029 Bump version to 0.5.0
2031 2008-08-31 Colin Walters <walters@verbum.org>
2033 * giscanner/glibtransformer.py: Follow aliases to ensure
2034 we don't get a constructor returning a basic type.
2035 * giscanner/transformer.py: Add function to follow aliases.
2038 2008-08-31 Johan Dahlin <johan@gnome.org>
2040 * giscanner/scannerlexer.l:
2041 * giscanner/scannerparser.y:
2042 * giscanner/sourcescanner.h:
2043 * giscanner/sourcescanner.py:
2044 Parse GCC extensions in the parser instead of just undeffing them
2045 in the pre-processor.
2047 2008-08-31 Johan Dahlin <johan@gnome.org>
2049 * giscanner/glibtransformer.py:
2050 Clean up a huge if. Do not add methods or constructors
2052 * giscanner/utils.py:
2053 second might be longer than first, check that.
2055 2008-08-31 Johan Dahlin <johan@gnome.org>
2060 2008-08-31 Colin Walters <walters@verbum.org>
2062 * girepository/girparser.c: Don't lose if we
2065 2008-08-31 Colin Walters <walters@verbum.org>
2067 * giscanner/glibtransformer.py: Look for libtool
2068 library in current directory
2069 * tests/scanner - Update.
2071 2008-08-30 Colin Walters <walters@verbum.org>
2073 * docs/typelib-format.txt: Add a guint32
2075 * gir/Makefile.am: Dep on Makefile
2076 * girepository/ginfo.c:
2077 * girepository/girepository.c: Clean up
2078 default typelib handling; remove global
2079 default_typelib variable. Ensure we handle
2080 NULL repository in more places.
2081 Support dependency resolution.
2082 Support lazy loading.
2083 * girepository/girepository.h: Remove
2084 g_irepository_unregister; we don't support
2085 unloading typelibs since really they're
2086 process-global. Update for lazy loading
2088 * girepository/girmodule.c: Use g_new0.
2089 Add dependencies to GirModule.
2090 * girepository/girparser.c: Parse dependencies.
2091 * girepository/gtypelib.c: Add 4 bytes for
2093 * tests/Makefile.am: Kill off gobject.gir,
2094 it conflicts with the real one.
2095 * tests/object.gir: Dep on GObject.
2096 * tools/generate.c: Take --includedir
2097 argument to say which directories to search
2098 for typelibs. Print out dependencies.
2100 2008-08-30 Colin Walters <walters@verbum.org>
2102 * giscanner/glibtransformer.py: Reduce warning noise.
2104 2008-08-29 Colin Walters <walters@verbum.org>
2106 * girepository/ginfo.c: Add some assertions regarding
2107 refcounts, just to be sure.
2108 * giscanner/glibtransformer.py: Blacklist a few more
2111 2008-08-29 Colin Walters <walters@verbum.org>
2113 * giscanner/glibtransformer.py: Blacklist a few
2114 functions that use GError oddly
2116 2008-08-29 Colin Walters <walters@verbum.org>
2118 * girepository/gtypelib.c: Don't crash if no
2121 2008-08-29 Colin Walters <walters@verbum.org>
2123 * girepository/girparser.c: Handle chains of aliases
2124 across modules by ensuring we fully qualify aliases
2127 2008-08-29 Colin Walters <walters@verbum.org>
2129 * girepository/girparser.c: Don't search aliases
2132 2008-08-29 Colin Walters <walters@verbum.org>
2134 * girepository/girparser.c: Rewrite type parsing
2135 to handle both GLib parsing case as well as correctly
2136 handling GLib.List and friends. Don't try to treat
2137 e.g. ListStore as a List.
2139 2008-08-29 Colin Walters <walters@verbum.org>
2141 * girepository/gtypelib.c: Add more context
2144 2008-08-29 Colin Walters <walters@verbum.org>
2146 * giscanner/glibtransformer.py: Add some informative
2147 logging messages in corner cases. Be sure we use
2148 the most recent node set instead of a cache
2149 when generating result set.
2150 * tests/: Remove duplicated bits in expected girs
2151 * girepository/girparser.c: Accept both List (for
2152 compiling GLib) and GLib.List (what the scanner
2155 * tools/generate.c: Generate canonical form.
2157 2008-08-29 Johan Dahlin <johan@gnome.org>
2159 * giscanner/config.py.in:
2160 Use datarootdir instead of datadir to avoid
2161 an autoconf warning.
2163 2008-08-29 Johan Dahlin <johan@gnome.org>
2167 * examples/gdk-pixbuf.gidl:
2169 Update and remove old cruft.
2171 2008-08-29 Johan Dahlin <johan@gnome.org>
2174 * docs/g-ir-compiler.1:
2175 * docs/g-ir-generate.1:
2176 * docs/g-ir-scanner.1:
2177 Add man pages for the generator and compiler.
2179 2008-08-29 Johan Dahlin <johan@gnome.org>
2181 * docs/g-ir-scanner.1: Document
2183 * giscanner/Makefile.am:
2184 * giscanner/gidlparser.py:
2185 * giscanner/gidlwriter.py:
2186 * tools/g-ir-scanner:
2187 Remove gidl support.
2189 2008-08-28 Colin Walters <walters@verbum.org>
2191 * tests/scanner/Makefile.am: Pass the right
2192 --includedir args. Add a Makefile dep.
2193 * tools/compiler.c: Pass includedirs down.
2194 * girepository/girparser.c: Actually put
2195 includedirs in context, pass down. Fix
2198 2008-08-28 Colin Walters <walters@verbum.org>
2200 * gir/Makefile.am: Use --includedir
2201 * girepository/girparser.c: Recursively parse
2202 includes to pull in aliases and expand them.
2203 We need this to avoid putting unknown names in
2205 * tools/compiler.c: Add --includedir option.
2206 * giscanner/ast.py: Map size/ssize to types
2209 2008-08-28 Tor Lillqvist <tml@novell.com>
2211 Make check now runs successfully on Windows.
2213 * tools/compiler.c (write_out_typelib): Use binary mode for output
2216 * girepository/girnode.c: Don't print NULL strings.
2218 * tests/invoke/Makefile.am
2219 * tests/scanner/Makefile.am: Use -no-undefined on Windows to
2220 convince libtool to build shared libraries.
2222 * tests/invoke/invoke.c: Don't needlessly include <dlfcn.h>. Use
2223 g_assert() instead of printing out expected errors.
2225 2008-08-28 Tor Lillqvist <tml@novell.com>
2227 * girepository/gtypelib.h: Change type of bitfield fields from
2228 guint to the most suitable smaller type. This makes the struct
2229 sizes match the ones on Linux that the sanity check expects when
2230 using gcc -mms-bitfields on Windows.
2232 2008-08-28 Johan Dahlin <johan@gnome.org>
2237 * giscanner/Makefile.am:
2238 * tests/Makefile.am:
2239 * tests/scanner/Makefile.am:
2240 Make distcheck pass.
2242 2008-08-27 Johan Dahlin <johan@gnome.org>
2244 * giscanner/Makefile.am:
2245 Only send in -no-undefined on Win32 as it breaks on MacOS X.
2247 2008-08-27 Tor Lillqvist <tml@novell.com>
2249 Make g-ir-scanner work on Windows. Still problems with the typelib
2250 code. Changes okayed by jdahlin.
2252 * configure.ac: Check for Windows, set Automake conditional
2253 OS_WIN32. Change backslashes to forward slashes in pyexecdir to
2254 avoid shell quoting issues
2256 * girepository/Makefile.am: Use -no-undefined so that libtool
2257 agrees to build a shared library on Windows.
2259 * girepository/girparser.c (backtrace_stderr): No backtrace() on
2260 Windows. Empty implementation on Windows so far.
2262 * girepository/gtypelib.c (g_typelib_check_sanity): Give more
2263 informative error message for the assertion failures. Tell also
2264 what the expected size of the struct is. Check all sizes first and
2265 fail afterwards if at least one size was different from expected.
2267 * tools/Makefile.am: Reorder libraries into proper logical
2270 * tools/generate.c: Don't include <dlfcn.h>, not used.
2272 * giscanner/Makefile.am: On Windows, link with the Python library,
2273 and install the module DLL as _giscanner.pyd. Remove the
2274 unnecessary import library and libtool library that libtool has
2277 * giscanner/scannerlexer.l: Recognize the gcc __attribute__ syntax
2278 and just skip it. Recognize also two "l" suffixes for long long
2279 constants. Recognize also __inline__.
2281 * giscanner/grealpath.h (g_realpath): Implement on Windows, using
2282 GetFullPathName(). As such, GetFullPathName() does more than the
2283 UNIX realpath(). It also changes relative paths into absolute
2284 paths. But for our purposes that shouldn't matter.
2286 * giscanner/giscannermodule.c (pygi_source_scanner_parse_file): On
2287 Windows the file descriptor passed to us is from Python. Python
2288 Python2.5 uses the msvcr71.dll C library, while mingw-built code
2289 uses msvcrt.dll. On Windows, file descriptors are specific to
2290 which C library is used. So we must find out what underlying OS
2291 handle corresponds to the file descriptor Python passes us, and
2292 then make that into a file descriptor valid for the C library this
2295 * giscanner/sourcescanner.py (_parse): Don't need to bypass
2296 __attribute__ as the lexer now handles it. The definition as empty
2297 was ineffective for mingw anyway, as mingw's _mingw.h undefines
2298 __attribute__. Close the temp file before unlinking it.
2300 * giscanner/cgobject.py: Use correct library name for the gobject
2303 * gir/Makefile.am: Must pass the full basename of the DLLs on
2304 Windows to g-ir-scanner. It's a bit ugly that we have to "know"
2305 that the names of the GLib DLLs are like libglib-2.0-0.dll, but in
2306 reality they won't change, until there is a GLib 3, and then also
2307 the Unix code here needs changing.
2309 Must pass CPPFLAGS to g-ir-scanner when building GLib.gir so that
2312 2008-08-26 Colin Walters <walters@verbum.org>
2314 * girepository/girepository.c: Search
2315 $DATADIR/girepository instead of
2316 $DATADIR/gitypelibs; this naming makes
2317 it clearer that e.g. jgir can install
2319 * gir/Makefile.am: Install there.
2321 2008-08-26 Colin Walters <walters@verbum.org>
2323 * girepository/gtypelib.c (_g_typelib_init): Also
2324 use G_MODULE_SUFFIX instead of hardcoding .so.
2326 2008-08-26 Colin Walters <walters@verbum.org>
2328 * girepository/gtypelib.c (_g_typelib_init): Free
2329 string in the right place.
2331 2008-08-26 Colin Walters <walters@verbum.org>
2333 * girepository/gtypelib.c (_g_typelib_init): Handle
2334 both .la and .so names; this works better in the
2335 uninstalled library case.
2337 2008-08-26 Johan Dahlin <johan@gnome.org>
2340 * giscanner/Makefile.am:
2341 * giscanner/cgobject.py:
2342 * giscanner/config.py.in:
2343 * giscanner/sourcescanner.py:
2344 Avoid undeffing __GNUC__, instead define
2345 __attribute__ & friends. Remove glibconfig.h hack.
2346 This makes gobject-introspection work better on
2347 MacOS X, Thanks to Richard Hult for kind help.
2349 2008-08-25 Colin Walters <walters@verbum.org>
2351 * giscanner/glibtransformer.py: Always print
2354 2008-08-25 Colin Walters <walters@verbum.org>
2356 * giscanner/glibtransformer.py: Skip over
2357 interfaces we don't know.
2359 2008-08-25 Colin Walters <walters@verbum.org>
2361 * girepository/girparser.c: Parse new implements
2362 syntax, drop gapi one.
2363 * tests/object.gir: Update.
2364 * tools/generate.c: Generate new syntax.
2366 2008-08-25 Colin Walters <walters@verbum.org>
2368 * giscanner/ast.py: Add interfaces property
2370 * giscanner/girwriter.py: Write out implemented
2372 * giscanner/glibtransformer.py: Introspect
2373 implemented interfaces.
2374 * tests/scanner/*: Make FooObject implement
2377 2008-08-25 Colin Walters <walters@verbum.org>
2379 * giscanner/glibtransformer.py: More correctly pair
2380 methods; if we have a symbol that starts with
2381 e.g. hippo_canvas look for a matching HippoCanvas
2382 class before accepting e.g. HippoCanvasImage.
2384 2008-08-24 Colin Walters <walters@verbum.org>
2386 * tools/g-ir-scanner: Filter out unknown options from
2389 2008-08-24 Colin Walters <walters@verbum.org>
2391 * giscanner/glibtransformer.py: Fail with better
2392 error if we can't find library.
2394 2008-08-24 Colin Walters <walters@verbum.org>
2396 * tools/g-ir-scanner: Use subprocess instead of
2397 commands, works on Windows and avoids the evil
2400 2008-08-24 Colin Walters <walters@verbum.org>
2402 * giscanner/glibtransformer.py: Skip over
2403 g_object_get_type from GLib trunk.
2405 2008-08-24 Colin Walters <walters@verbum.org>
2407 * girepository/girepository.c (g_irepository_require):
2408 Don't open shared library here; we already do it
2411 2008-08-24 Colin Walters <walters@verbum.org>
2413 * girepository/gtypelib.c: Add context stack so
2414 when we get an error we can print out nicely
2417 2008-08-24 Johan Dahlin <johan@gnome.org>
2419 * girepository/girparser.c (start_glib_boxed), (start_function),
2420 (start_field), (start_alias):
2421 Refactor a couple of parsing functions to be simpler to follow.
2424 2008-08-24 Johan Dahlin <johan@gnome.org>
2426 * girepository/girparser.c (start_function):
2427 Remove left-over code, checking type of function.
2429 2008-08-23 Colin Walters <walters@verbum.org>
2431 * giscanner/config.py: Define DATADIR.
2432 * giscanner/transformer.py: Look in DATADIR.
2434 2008-08-23 Colin Walters <walters@verbum.org>
2436 * girepository/gtypelib.c: Check constructor
2438 * girepository/girnode.c: Small tweaks.
2439 * girepository/ginfo.c: Calculate signature offsets
2441 * girepository/girparser.c: Remove duplicate
2443 * giscanner/glibtransformer.py: Avoid marking
2444 functions which return a basic type as
2447 2008-08-23 Colin Walters <walters@verbum.org>
2449 * girepository/girparser.c: Ignore <include>.
2450 * giscanner/girparser.py: Parse them.
2451 * giscanner/girwriter.py: Generate them.
2452 * giscanner/transformer.py: Process <include>
2453 recursively. Don't require full path for
2454 includes, look in {$XDG_DATA_DIRS}/gir.
2455 * tools/g-ir-scanner: Pass through includes.
2456 * Makefile.am: Remove extra --include
2458 * *-expected.gir: Add expected includes.
2460 2008-08-23 Johan Dahlin <johan@gnome.org>
2462 * tests/scanner/Makefile.am:
2463 * tests/scanner/annotation-expected.gir:
2464 * tests/scanner/drawable-expected.gir:
2465 Avoid duplication in the Makefile, regenerate with new
2466 namespaces (same as the filename)
2468 2008-08-22 Colin Walters <walters@verbum.org>
2470 * girepository/girnode.c: Don't hardcode integers,
2473 2008-08-22 Johan Dahlin <johan@gnome.org>
2475 * giscanner/sourcescanner.py:
2476 Check for ../gobject-introspection-1.0.pc.in to determine
2477 if we run installed or uninstalled.
2479 2008-08-22 Johan Dahlin <johan@gnome.org>
2482 * giscanner/sourcescanner.py:
2483 Send in undefs/defines via writing it directly to stdin
2484 of cpp instead of via arguments.
2486 2008-08-22 Colin Walters <walters@verbum.org>
2488 * tools/generate.c, tools/compiler.c: Default
2490 * all Makefile.am: Update.
2492 2008-08-22 Colin Walters <walters@verbum.org>
2494 * girepository/girparser.c: Pass through
2495 recursive types. Avoid overwriting errors.
2496 * giscanner/xmlwriter.py: Always write the
2498 * tests/*.gir: Adjust.
2499 * tests/scanner/Makefile.am: Build typelibs,
2500 and generate XML from those. Once we
2501 have a good diff mechanism...
2502 * tests/scanner/*-expected.gir: Add XML
2504 * tools/g-ir-scanner: Accept --typelib-xml
2506 * tools/generate.c: Better defaults for transfer.
2508 2008-08-22 Johan Dahlin <johan@gnome.org>
2512 * giscanner/Makefile.am:
2513 * giscanner/config.py.in:
2514 * giscanner/sourcescanner.py:
2515 Use the generated glibconfig.h for all scanner invokations.
2516 Rename it to glibconfig-scanner.h and install it.
2517 Add a config.py which so far contains the include dir.
2519 2008-08-22 Johan Dahlin <johan@gnome.org>
2522 Replace glibconfig.h with our own, do some replacement
2523 for CPP/C features we do not support
2525 2008-08-22 Colin Walters <walters@verbum.org>
2527 * tools/generate.c (write_callable_info): Fix unref
2530 2008-08-22 Colin Walters <walters@verbum.org>
2532 * gobject-introspection-1.0.pc.in: Add g-ir-generate.
2533 * tests/Makefile.am: Support $(DEBUG)
2534 * tools/generate.c: Do immediate close tags if no
2537 2008-08-21 Colin Walters <walters@verbum.org>
2539 * tests/scanner/drawable-expected.gir,
2540 * tests/scanner/drawable.c,
2541 * tests/scanner/drawable.h:
2544 2008-08-21 Colin Walters <walters@verbum.org>
2546 * giscanner/glibtransformer.py: Compute prefix
2547 by searching through the symbol for bits
2548 rather than going directly from ctype; this fixes
2551 2008-08-21 Colin Walters <walters@verbum.org>
2553 * giscanner/glibtransformer.py: Also try squashing
2554 underscores from namespace, fixes webkit_web_view_new.
2556 2008-08-21 Colin Walters <walters@verbum.org>
2558 * giscanner/glibtransformer.py: More ctor work,
2559 avoid having gtk_window_group_new end up under
2562 2008-08-21 Colin Walters <walters@verbum.org>
2564 * giscanner/glibtransformer.py: Much simpler approach
2565 of mapping uscored names to classes.
2566 * giscanner/utils.py: Remove unnecessary function.
2568 2008-08-21 Johan Dahlin <johan@gnome.org>
2570 * girepository/girepository.c (g_irepository_require):
2571 Plug memory leak and avoid using freed memory.
2572 Resolve the whole module path, here as well.
2574 2008-08-21 Colin Walters <walters@verbum.org>
2576 * giscanner/glibtransformer.py: Look up all permutations
2577 of class names when scanning methods/ctors based on
2578 the prefix instead of using the return value. This
2579 associates gtk_window_new with the right class.
2581 2008-08-21 Colin Walters <walters@verbum.org>
2583 * girepository/girmodule.c (g_ir_module_build_typelib):
2584 Revert change to increment header_size; we do that in
2587 2008-08-21 Colin Walters <walters@verbum.org>
2589 * girepository/girnode.c (write_string): Tweak to
2590 use UINT instead of INT. Not likely to matter.
2591 * girepository/girmodule.c (g_ir_module_build_typelib):
2592 Add to header_offset as well for header strings
2593 to match what write_string does.
2594 * girepository/gtypelib.c: Replace is_name with
2595 validate_name, which more strongly validates and
2596 handles errors in a better way. Update all callers.
2597 * giscanner/glibtransformer.py: Handle constructors
2600 2008-08-21 Johan Dahlin <johan@gnome.org>
2602 * gir/Makefile.am (typelibs_DATA): Build and
2603 install the Gio.typelib too
2605 * girepository/gtypelib.c (_g_typelib_init):
2606 Use g_module_build_path to resolve the shlib name
2608 2008-08-21 Colin Walters <walters@verbum.org>
2610 * gir/Makefile.am: CLEANFILES typelibs too.
2612 2008-08-21 Johan Dahlin <johan@gnome.org>
2614 * giscanner/glibtransformer.py:
2615 Do not send .la files through find_library.
2617 2008-08-21 Colin Walters <walters@verbum.org>
2619 * girepository/girparser.c (g_irepository_require):
2620 Fix one small leak in error case.
2622 2008-08-21 Johan Dahlin <johan@gnome.org>
2625 Parse glibconfig.h as well and install the compiled
2628 2008-08-21 Johan Dahlin <johan@gnome.org>
2631 * giscanner/glibtransformer.py:
2632 * tools/g-ir-scanner:
2633 Do not hard-core library names in the Makefile, reuse
2634 ctypes find_library instead.
2636 2008-08-21 Johan Dahlin <johan@gnome.org>
2638 * girepository/girparser.c (resolve_aliases):
2639 Remove compilation warnings
2641 2008-08-21 Johan Dahlin <johan@gnome.org>
2643 * girepository/girepository.c (g_irepository_require):
2644 Rewrap and fix double free bug by leaking a bit.
2646 2008-08-20 Colin Walters <walters@verbum.org>
2648 * girepository/girepository.c: Add new function
2649 g_irepository_get_typelib_path which tells
2650 us from where we loaded a namespace.
2652 2008-08-20 Colin Walters <walters@verbum.org>
2654 * tests/scanner/*-expected.gir: Adjust for
2655 added shared-library.
2656 * giscanner/giwriter.py: Make pylint happy.
2658 2008-08-20 Colin Walters <walters@verbum.org>
2660 * girepository/girmodule.c (g_ir_module_build_typelib):
2661 Calculate size correctly, avoid use-after-free.
2663 2008-08-20 Colin Walters <walters@verbum.org>
2665 * girepository/girepository.c: Remove
2666 g_irepository_register_file in favor of
2667 g_irepository_require. There are two
2668 possible deployment scenarios for typelibs:
2669 First, separate in $DATADIR/gitypelibs/. Second,
2670 they may be embedded in shlibs. However since
2671 the first is now the normal case, the API is
2672 optimized around it.
2674 Refactor internals to look up typelibs for
2675 namespaces just-in-time, but we expect
2676 consumers to call g_irepository_require.
2678 Also, add some docs. No one has died from that
2680 * gir/Makefile.am: Need --library for glib.
2681 * giscanner/girwriter.py: Write out shared-library.
2682 * tools/g-ir-writer: Take the first --library
2683 argument as the target of shared-library. In
2684 the future we should make this nicer with pkg-config
2687 2008-08-20 Colin Walters <walters@verbum.org>
2689 * girepository/girparser.py: And parse them.
2691 2008-08-20 Johan Dahlin <johan@gnome.org>
2693 * giscanner/glibast.py: Add gshort/gushort types
2695 2008-08-20 Colin Walters <walters@verbum.org>
2697 * gir/Makefile.am: Rename .gir files using GI namespace.
2698 * girepository/girepository.c: Use XDG_DATA_DIRS for
2699 looking up typelibs. Also typelibs are now suffixed
2701 * tests/invoke/Makefile.am: Only use metadata.
2702 * girepository/Makefile.am: Remove unnecessary include.
2703 * tests/scanner/Makefile.am: Update using GI namespaces
2704 for scanner includes.
2706 2008-08-20 Colin Walters <walters@verbum.org>
2708 * girepository/transformer.py: Suppress aliases whose
2710 * girepository/ast.py: Define some more aliases.
2712 2008-08-20 Colin Walters <walters@verbum.org>
2714 * girepository/girparser.c: Avoid alias infloops.
2716 2008-08-20 Colin Walters <walters@verbum.org>
2718 * tests/scanner/foo-expected.gir: Fix expected list type.
2720 2008-08-20 Johan Dahlin <johan@gnome.org>
2722 * giscanner/glibtransformer.py (GLibTransformer._resolve_type_name):
2723 Add a workaround for #548689.
2724 We can now compile gtk!
2726 2008-08-20 Colin Walters <walters@verbum.org>
2728 * giscanner/glibtransformer.py: Try to look up
2729 aliases using the c:type too.
2731 2008-08-20 Colin Walters <walters@verbum.org>
2733 * girepository/girparser.c: Parse union fields.
2735 2008-08-20 Johan Dahlin <johan@gnome.org>
2737 * giscanner/ast.py: Make time_t an alias for long
2739 * gir/gio-2.0-good.gir:
2740 * gir/glib-2.0-good.gir:
2741 * gir/gobject-2.0-good.gir:
2743 * giscanner/glibtransformer.py:
2744 Do not delete Class structures, we need them in gdk/gtk.
2745 * tests/scanner/drawable-expected.gir:
2746 * tests/scanner/foo-expected.gir:
2747 * tests/scanner/utility-expected.gir:
2750 2008-08-20 Johan Dahlin <johan@gnome.org>
2752 * tests/scanner/Makefile.am:
2753 * tests/scanner/annotation-expected.gir:
2754 * tests/scanner/annotation.c (annotation_object_class_init),
2755 (annotation_object_init), (annotation_object_method),
2756 (annotation_object_in), (annotation_object_out),
2757 (annotation_object_inout), (annotation_object_inout2),
2758 (annotation_object_inout3), (annotation_object_calleeowns),
2759 (annotation_object_calleesowns), (annotation_object_get_strings),
2760 (annotation_object_with_voidp), (annotation_object_get_objects),
2761 (annotation_object_create_object), (annotation_object_allow_none):
2762 * tests/scanner/annotation.h:
2763 * tests/scanner/foo-expected.gir:
2764 * tests/scanner/foo.c:
2765 * tests/scanner/foo.h:
2766 Split out annotation tests out of foo
2768 2008-08-20 Johan Dahlin <johan@gnome.org>
2770 * tests/scanner/Foo-expected.gir:
2771 * tests/scanner/Makefile.am:
2772 * tests/scanner/foo-expected.gir:
2773 * tests/scanner/foo-object.h:
2774 * tests/scanner/foo.c:
2775 Foo->foo, foo-object.h -> foo.h
2777 2008-08-20 Johan Dahlin <johan@gnome.org>
2779 * tests/scanner/Foo-expected.gir:
2780 * tests/scanner/Makefile.am:
2781 * tests/scanner/drawable-expected.gir:
2782 * tests/scanner/drawable.c (test_drawable_class_init),
2783 (test_drawable_init):
2784 * tests/scanner/drawable.h:
2785 * tests/scanner/foo-object.h:
2786 * tests/scanner/foo.c (foo_boxed_method):
2787 Move the drawable parts out of Foo to its own test.
2789 2008-08-20 Johan Dahlin <johan@gnome.org>
2791 * tests/scanner/Foo-expected.gir:
2792 * tests/scanner/foo-object.h:
2793 * tests/scanner/foo.c (foo_drawable_class_init),
2794 (foo_drawable_init):
2795 Add a based on GdkDrawable which generates
2798 2008-08-19 Colin Walters <walters@verbum.org>
2800 * giscanner/transformer.py: Don't try
2801 to strip prefix before namespace.
2803 2008-08-19 Johan Dahlin <johan@gnome.org>
2805 * giscanner/transformer.py:
2806 * tests/scanner/Foo-expected.gir:
2807 * tests/scanner/foo-object.h:
2808 Add support for typedef void foo type of
2811 2008-08-19 Johan Dahlin <johan@gnome.org>
2814 * giscanner/girwriter.py:
2815 * giscanner/glibtransformer.py:
2816 * giscanner/transformer.py:
2817 * tests/scanner/Foo-expected.gir:
2818 Add basic support for union, base the code much
2819 on Struct. Add a testcase.
2821 2008-08-19 Johan Dahlin <johan@gnome.org>
2823 * tests/scanner/Foo-expected.gir:
2824 * tests/scanner/foo-object.h:
2825 Add a union testcase which the compiler currently
2828 2008-08-19 Johan Dahlin <johan@gnome.org>
2830 * gobject-introspection-1.0.pc.in:
2831 Add a g_ir_compiler variable
2833 2008-08-19 Colin Walters <walters@verbum.org>
2835 * giscanner/ast.py: Rework types to be more closely
2837 * giscanner/girparser.py: Parse more bits.
2838 * giscanner/girwriter.py: Write sequences in a new
2839 way that specifies container type.
2840 * giscanner/glibast.py: Adjust for ast.py changes,
2841 add 'ctype' property to GLibObject and GLibInterface
2842 so we can look things up by it later.
2843 * gicanner/transformer.py: Names is new class holding
2844 the various namespaces we manage. Do not confuse
2845 with Namespace which is toplevel XML node effectively.
2846 Rework all type resolution to go through
2847 _resolve_type_name_1.
2848 * giscanner/glibtransformer.py: Raise UnknownTypeError
2849 instead of ValueError for cleanliness. Add Unresolved
2850 class to mark types whose parent we haven't seen yet.
2851 Use new Names object from transformer.py.
2852 Correctly look up parent=.
2853 Fix type validation to handle sequences.
2854 * tests/scanner/Foo-expected.gir: Update for sequence
2855 work, int instead of int32.
2856 * tools/g-ir-scanner: Add --noclosure option
2857 * gir/Makefile.am: Use --noclosure by default for
2860 2008-08-18 Johan Dahlin <johan@gnome.org>
2862 * gir/gio-2.0-good.gir:
2863 * gir/glib-2.0-good.gir:
2864 * gir/gobject-2.0-good.gir:
2867 2008-08-18 Johan Dahlin <johan@gnome.org>
2870 * giscanner/girparser.py:
2871 * giscanner/girwriter.py:
2872 * giscanner/glibast.py:
2873 * giscanner/glibtransformer.py:
2874 * giscanner/transformer.py:
2875 * tests/scanner/Foo-expected.gir:
2876 * tests/scanner/foo-object.h:
2877 * tests/scanner/utility-expected.gir:
2878 * tests/scanner/utility.h:
2879 Redo type resolving and validation.
2880 Add a couple of new tests.
2881 Patch mostly written by Colin.
2883 2008-08-18 Johan Dahlin <johan@gnome.org>
2886 * giscanner/girparser.py:
2888 * giscanner/transformer.py:
2889 Improve enum parsing for enums without a GType.
2890 Make flags/enum references to other girs work
2891 * giscanner/utils.py:
2893 * tests/scanner/Makefile.am:
2894 * tests/scanner/foo-object.h:
2895 * tests/scanner/utility-expected.gir:
2896 * tests/scanner/utility.h:
2897 Add a new test for external enum references
2899 2008-08-18 Johan Dahlin <johan@gnome.org>
2901 * docs/global-module-registry.txt: Update
2903 * tests/array.gir: Update with new type proposal
2905 * girepository/girepository.c (g_type_tag_to_string):
2906 * girepository/girepository.h:
2907 * girepository/girnode.c (g_ir_node_get_full_size_internal),
2909 * girepository/girnode.h:
2910 Make enum serializing functions public. Clean up some whitespace.
2912 2008-08-17 Johan Dahlin <johan@gnome.org>
2914 * docs/global-module-registry.txt:
2915 Add a document for an on disk module registry format
2917 2008-08-17 Johan Dahlin <johan@gnome.org>
2920 * gir/gio-2.0-good.gir:
2923 2008-08-17 Johan Dahlin <johan@gnome.org>
2926 * gir/glib-2.0-good.gir:
2927 * gir/gobject-2.0-good.gir:
2928 * giscanner/cgobject.py:
2929 * giscanner/glibtransformer.py:
2930 Regenerate GObject & GType.
2931 Avoid warnings when generating gobject-2.0.gir.
2932 Introspect a little more, and skip *_get_type functions.
2934 2008-08-17 Colin Walters <walters@verbum.org>
2936 * gir/glib-2.0.gir, gir/gobject-2.0.gir:
2937 Rename to -good, always generate during build.
2938 * gir/Makefile.am: Ensure .gir files dep on
2939 all scanner sources.
2940 * Makefile.am: Switch build order to ensure
2941 the scanner is ready before we do gir/.
2942 * tools/g-ir-scanner: Look for .git too.
2944 2008-08-17 Johan Dahlin <johan@gnome.org>
2946 * girepository/gtypelib.c (validate_enum_blob):
2947 * giscanner/glibtransformer.py:
2948 * giscanner/transformer.py:
2949 Remove resolve_possible_typedefs, it was unused.
2950 Allow multiple enum values of the sample value in an enum,
2951 since it's actually pretty common.
2952 Register enums so they can be resolved too.
2954 2008-08-16 Johan Dahlin <johan@gnome.org>
2956 * giscanner/girparser.py:
2957 Parse enumeration/bitfield.
2959 2008-08-16 Johan Dahlin <johan@gnome.org>
2961 * giscanner/girparser.py:
2964 2008-08-16 Johan Dahlin <johan@gnome.org>
2966 * giscanner/glibtransformer.py:
2967 Resolve type names for alias targets
2968 * giscanner/transformer.py:
2969 Skip FILE* parameters fow now
2971 2008-08-16 Johan Dahlin <johan@gnome.org>
2974 * gir/gobject-2.0.gir:
2977 * tests/scanner/Makefile.am:
2980 2008-08-15 Colin Walters <walters@verbum.org>
2982 * giscanner/glibtransformer.py: Explicitly construct
2983 new list, since we're deleting as we iterate.
2984 Don't delete all structures which end in Class; just
2985 ones which have a paired GObject.
2986 Fix printing of type warning.
2987 * giscanner/transformer.py: Make strip_namespace_object
2988 be the identity function if it doesn't match the
2991 2008-08-15 Colin Walters <walters@verbum.org>
2993 * giscanner/cgobject.py: Define yet more argument
2994 prototypes; fix prototype for g_type_fundamental.
2996 2008-08-14 Johan Dahlin <johan@gnome.org>
2998 * tests/Makefile.am:
2999 * tests/constant.gir:
3000 * tests/gobject.gir:
3002 * tools/generate.c (write_struct_info):
3003 Fix generator for constant/gobject/struct
3005 2008-08-14 Johan Dahlin <johan@gnome.org>
3007 * tests/Makefile.am:
3009 * tools/generate.c (write_enum_info):
3010 Fix generation of enum/bitfields
3012 2008-08-14 Johan Dahlin <johan@gnome.org>
3014 * girepository/girparser.c (start_field), (start_constant),
3015 (start_type), (end_element_handler):
3016 Clear up constant parsing
3021 * tools/generate.c (write_callable_info), (write_function_info),
3022 (write_callback_info), (write_constant_info), (write_signal_info),
3023 (write_vfunc_info), (write_property_info), (write_object_info),
3024 (write_interface_info):
3025 Constants/Signals are handled now.
3027 2008-08-14 Johan Dahlin <johan@gnome.org>
3029 * girepository/girparser.c (start_type):
3030 Don't require c:type.
3031 * tests/Makefile.am:
3034 Update, remove parts we don't support yet
3035 * tests/roundtrips.sh:
3037 * tools/generate.c (write_type_info), (write_field_info),
3038 (write_callable_info), (write_struct_info):
3039 Make it emit proper gir.
3041 2008-08-14 Johan Dahlin <johan@gnome.org>
3043 * giscanner/transformer.py:
3044 New internal function for adding a new node.
3046 2008-08-14 Johan Dahlin <johan@gnome.org>
3049 Define an internal _H_ variable so we skip parsing both
3050 i18n headers, only one is needed.
3052 Add the glib-2.0.gir too.
3053 * giscanner/glibast.py:
3054 Add gconstpointer as an alias for ANY
3055 * giscanner/transformer.py:
3056 Do not lower case enumeration names per se.
3057 Skip functions which has parameters called 'va_list'
3059 2008-08-14 Colin Walters <walters@verbum.org>
3061 * giscanner/transformer.py: Comment data structures.
3062 Also squash pointers in resolve_type_name to correspond
3063 with what we do for params.
3064 * giscanner/glibtransformer.py: Print warnings in more
3065 situations. Rework checks for method/constructor to
3066 look up in our GType database instead of just checking
3067 for *. Avoid generating <record> for GObject which
3068 duplicate the <class>.
3069 * gir/Makefile.am: Generate glib-2.0.gir and gobject-2.0.gir
3072 2008-08-14 Johan Dahlin <johan@gnome.org>
3074 * giscanner/girwriter.py:
3075 * giscanner/glibast.py:
3076 * giscanner/glibtransformer.py:
3077 * giscanner/transformer.py:
3079 * tests/Makefile.am:
3080 Add pyflakes.py and run it in make check.
3081 Update the source code to fix the errors reported by
3084 2008-08-14 Johan Dahlin <johan@gnome.org>
3087 * giscanner/girparser.py:
3088 * giscanner/glibast.py:
3089 * giscanner/glibtransformer.py:
3090 Refactor the parser a bit.
3091 Add parent type to interfaces and update callsites.
3093 2008-08-14 Johan Dahlin <johan@gnome.org>
3095 * giscanner/glibtransformer.py:
3096 * giscanner/utils.py:
3097 Refactor a bit, avoid isinstance and add a method
3098 for each type we parse.
3100 2008-08-14 Johan Dahlin <johan@gnome.org>
3103 * giscanner/girparser.py:
3104 * giscanner/glibtransformer.py:
3105 * tests/Makefile.am:
3106 Run pep8.py in make check, fix old errors.
3108 2008-08-13 Colin Walters <walters@verbum.org>
3110 * giscanner/girparser.py: Parse records.
3112 2008-08-13 Colin Walters <walters@verbum.org>
3114 * gir/Makefile.am: Install again.
3115 * gir/gobject-2.0.gir: Add some more bits.
3117 2008-08-13 Colin Walters <walters@verbum.org>
3119 * gir/gobject-2.0.gir: Use correct namespace, add GType.
3120 * giscanner/girparser.py: Handle aliases.
3121 * giscanner/transformer.py: Record aliases. Make resolver
3122 functions public; we now call into these explicitly from
3123 glibtransformer. Handle resolving aliases.
3124 * giscanner/glibtransformer.py: Separate our internal namespace
3125 from included ones. Call up into transformer's resolver functions.
3127 2008-08-13 Johan Dahlin <johan@gnome.org>
3129 * girepository/girnode.c (g_ir_node_get_full_size_internal):
3130 * girepository/girparser.c (start_class):
3131 * giscanner/glibtransformer.py:
3132 Allow get_type to be None, set a get_type for GInitiallyUnowned too.
3134 2008-08-13 Johan Dahlin <johan@gnome.org>
3136 * giscanner/cgobject.py:
3137 Register GInitiallyUnowned
3138 * giscanner/girwriter.py:
3139 * giscanner/glibtransformer.py:
3140 Special case GObject/GInitially owned as they are a bit special to use.
3142 2008-08-13 Colin Walters <walters@verbum.org>
3144 * tests/scanner/Foo-expected.gir, tests/scanner/utility-expected.gir:
3145 Object is in GObject namespace.
3147 2008-08-13 Colin Walters <walters@verbum.org>
3149 * giscanner/girparser.py: Fix processing of functions
3152 2008-08-13 Colin Walters <walters@verbum.org>
3154 * giscanner/girparser.py: Parse more than just <class.
3155 * giscanner/glibtransformer.py: Put aliases in a separate
3156 data structure since their name is not canonicall.
3157 * giscanner/transformer.py: Handle resolving type names
3160 2008-08-13 Johan Dahlin <johan@gnome.org>
3162 * tools/g-ir-scanner:
3163 Allow multiple libraries
3164 * giscanner/glibtransformer.py:
3165 Rename load_library to add_library, traverse over all libraries
3166 when trying to resolve a function
3168 2008-08-12 Colin Walters <walters@verbum.org>
3170 * giscanner/transformer.py: Record typedefs as <alias> elements.
3171 Also attempt to look up types in external namespaces.
3172 * giscanner/girwriter.py: Write them.
3173 * giscanner/glibtransformer.py: Rework resolver using real instanceof
3174 checks. Resolve interface methods and properties.
3175 * tests/scanner/foo-object.h: Add a method with typedef.
3176 * tests/scanner/Foo-expected.gir: Update.
3177 * girepository/girnode.c: Debug tweaks.
3178 * girepository/girparser.c: Make a first pass through the XML where we
3179 record all the aliases. This lets us resolve them as we go through the
3181 * gir/Makefile.am: Don't install gobject-2.0.gir; we want that to come
3182 from gir-repository.
3184 2008-08-12 Colin Walters <walters@verbum.org>
3186 * giscanner/glibtransformer.py: Resolve typedefs (e.g. AtkAttributeSet -> GSList).
3187 Correctly do subclasseing in 2nd pass resolution. Handle callbacks in structure
3189 * giscanner/transformer.py: Record typedefs and expose public API for resolving
3191 * tests/scanner/Foo-expected.gir: Fix expected callback types.
3193 2008-08-12 Colin Walters <walters@verbum.org>
3195 * giscanner/glibtransformer.py: Also transform object properties.
3197 2008-08-12 Colin Walters <walters@verbum.org>
3199 * giscanner/glibtransformer.py: Also transform callbacks
3200 and structure field types.
3201 * tests/scanner/Fooe-expected.gir: Update to expect correct
3202 names for callbacks and structs.
3204 2008-08-12 Colin Walters <walters@verbum.org>
3206 * girepository/girparser.c: Handle 'any'.
3207 * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
3208 Add test for void *.
3210 2008-08-12 Colin Walters <walters@verbum.org>
3212 * giscanner/glibtransformer.py: We need to do type
3213 resolution in a second pass after we've seen all the
3214 enums, records, etc.
3216 2008-08-12 Colin Walters <walters@verbum.org>
3218 * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
3219 Add enum return value.
3220 * giscanner/glibtransformer.py: Transform function return types
3223 2008-08-12 Colin Walters <walters@verbum.org>
3225 * tests/scanner/Makefile.am: Dep .gir files on scanner
3226 sources too. Also remove @ so we see scanner invocations.
3228 2008-08-12 Colin Walters <walters@verbum.org>
3230 * girepository/girparser.c, girepository/gtypelib.c,
3231 girepository/gtypelib.h, girepository/girnode.c:
3232 Remove usage of (GAPI-oriented) TypeTag in favor of
3233 GITypeTag from girepository.h.
3235 2008-08-10 Colin Walters <walters@verbum.org>
3237 * tests/roundtrips.sh: Use the correct tests.
3239 2008-08-10 Colin Walters <walters@verbum.org>
3241 * giscanner/cgobject.py: Declare/wrap a few more functions.
3242 Fix parameter types for g_object_new and g_type_fundamental.
3244 2008-08-10 Colin Walters <walters@verbum.org>
3246 * giscanner/cgobject.py: Add new decorator @gwrap which forces
3247 us to declare types for both return value and parameters. The
3248 ctypes default of 'int' is bad because it hides 32/64 bit
3249 problems. Convert all existing functions to use it.
3251 2008-08-09 Johan Dahlin <johan@gnome.org>
3253 * giscanner/__init__.py:
3255 * giscanner/cgobject.py:
3256 * giscanner/gidlparser.py:
3257 * giscanner/gidlwriter.py:
3258 * giscanner/girparser.py:
3259 * giscanner/girwriter.py:
3260 * giscanner/glibast.py:
3261 * giscanner/glibtransformer.py:
3262 * giscanner/odict.py:
3263 * giscanner/sourcescanner.py:
3264 * giscanner/transformer.py:
3265 * giscanner/utils.py:
3266 * giscanner/xmlwriter.py:
3267 * tools/g-ir-scanner:
3271 2008-08-09 Johan Dahlin <johan@gnome.org>
3274 * relaxng/c-types.xml:
3275 * relaxng/g-types.xml:
3276 * relaxng/relaxng.rng:
3278 Remove outdated relaxng schemas.
3280 2008-08-09 Johan Dahlin <johan@gnome.org>
3283 Rename metadata to typelib in variable names,
3286 2008-08-09 Johan Dahlin <johan@gnome.org>
3290 Remove old C scanner, which got rewritten in python.
3292 2008-08-09 Johan Dahlin <johan@gnome.org>
3294 * girepository/Makefile.am:
3295 * tools/Makefile.am:
3296 * tools/girmodule.c:
3297 * tools/girmodule.h:
3300 * tools/girparser.c:
3301 * tools/girparser.h:
3302 * tools/girwriter.c:
3303 * tools/girwriter.h:
3304 Move shared *.[ch] files to girepository from tools
3306 2008-08-09 Johan Dahlin <johan@gnome.org>
3308 * tests/Makefile.am:
3311 * tests/constant.test:
3313 * tests/errors.test:
3314 * tests/function.test:
3315 * tests/gobject.test:
3316 * tests/interface.test:
3317 * tests/object.test:
3318 * tests/struct.test:
3323 Rename *.test to *.gir
3325 2008-08-09 Johan Dahlin <johan@gnome.org>
3328 * tests/Makefile.am:
3329 * tests/parser/Foo-expected.gir:
3330 * tests/parser/Makefile.am:
3331 * tests/parser/foo-object.h:
3332 * tests/parser/foo.c:
3333 * tests/parser/utility-expected.gir:
3334 * tests/parser/utility.c:
3335 * tests/parser/utility.h:
3336 * tests/scanner/Makefile.am:
3337 Rename tests/parser to test/scanner
3339 2008-08-08 Colin Walters <walters@verbum.org>
3341 * tests/roundtrips.sh: Use local .gir files again.
3343 2008-08-08 Colin Walters <walters@verbum.org>
3345 * tests/invoke/Makefile.am: .gir file depends on libtool
3348 2008-08-08 Colin Walters <walters@verbum.org>
3350 * tools/girnode.c: Pass through parent node so we can
3351 print the node whose child is NULL, if that occurs.
3353 2008-08-08 Johan Dahlin <johan@gnome.org>
3355 * tests/Makefile.am:
3356 Disable roundtrip tests which are not yet working
3357 * tests/invoke/testfns.gir:
3360 2008-08-08 Johan Dahlin <johan@gnome.org>
3362 * giscanner/girwriter.py:
3364 * giscanner/glibast.py:
3365 * giscanner/glibtransformer.py:
3366 Swap order of members, to keep it consistent with
3369 2008-08-08 Johan Dahlin <johan@gnome.org>
3371 * girepository/gtypelib.c (validate_header):
3372 * girepository/gtypelib.h:
3374 * giscanner/girwriter.py:
3375 * giscanner/sourcescanner.c (gi_source_symbol_ref),
3376 (gi_source_symbol_unref):
3379 * tests/constant.test:
3381 * tests/errors.test:
3382 * tests/function.test:
3383 * tests/gobject.test:
3384 * tests/interface.test:
3385 * tests/invoke/Makefile.am:
3386 * tests/invoke/testfns.xml:
3387 * tests/object.test:
3388 * tests/parser/Makefile.am:
3389 * tests/roundtrips.sh:
3390 * tests/struct.test:
3395 * tools/Makefile.am:
3396 * tools/compiler.c (main):
3397 * tools/generate.c (write_callable_info), (write_function_info),
3399 * tools/gidlmodule.c:
3400 * tools/gidlmodule.h:
3403 * tools/gidlparser.c:
3404 * tools/gidlparser.h:
3405 * tools/gidlwriter.c:
3406 * tools/gidlwriter.h:
3407 * tools/scanner.c (create_node_from_gtype),
3408 (create_node_from_ctype), (g_igenerator_process_properties),
3409 (g_igenerator_process_signals), (g_igenerator_create_object),
3410 (g_igenerator_create_interface), (g_igenerator_create_boxed),
3411 (g_igenerator_create_enum), (g_igenerator_create_flags),
3412 (g_igenerator_process_function_symbol),
3413 (g_igenerator_process_unregistered_struct_typedef),
3414 (g_igenerator_process_struct_typedef),
3415 (g_igenerator_process_union_typedef),
3416 (g_igenerator_process_enum_typedef),
3417 (g_igenerator_process_function_typedef),
3418 (g_igenerator_process_constant), (g_igenerator_process_symbols),
3419 (g_igenerator_add_module), (g_igenerator_add_include_idl):
3420 Merge in the gir-compiler branch.
3421 Thanks to Philip and Colin for their help.
3423 2008-07-26 Colin Walters <walters@verbum.org>
3425 * tools/Makefile.am (bin_PROGRAMS): Install g-idl-compiler
3426 and g-idl-generate to go along with how we're changing this
3427 module to be installed.
3428 * gobject-introspection-1.0.pc.in: Set up Cflags and Libs.
3430 2008-07-24 Colin Walters <walters@verbum.org>
3432 * girepository/girepository.c (g_irepository_register): Add
3433 environment variable G_IREPOSITORY_VERBOSE so we can print
3434 out what we're doing.
3435 * girepository/girepository.c (g_irepository_register_file):
3436 Add GError error message to g_debug call.
3438 2008-07-08 Jürg Billeter <j@bitron.ch>
3440 * giscanner/glibast.py:
3444 2008-06-21 Johan Dahlin <jdahlin@async.com.br>
3446 * giscanner/girparser.py (GIRParser._parse_api): Ignore a few
3449 2008-06-20 Johan Dahlin <jdahlin@async.com.br>
3452 * giscanner/girwriter.py:
3453 * giscanner/transformer.py:
3454 * tests/parser/Foo-expected.gir:
3455 * tests/parser/foo-object.h:
3456 * tests/parser/foo.c (foo_object_allow_none):
3457 Add support for gtk-doc annotations for allow-none.
3460 2008-06-19 Johan Dahlin <jdahlin@async.com.br>
3463 * giscanner/girwriter.py:
3464 * giscanner/glibast.py:
3465 * giscanner/glibtransformer.py:
3466 * giscanner/transformer.py:
3467 * tests/parser/Foo-expected.gir:
3468 Start using abstract type instead of the raw C types.
3469 Register a bunch of glib types we care about.
3471 2008-06-19 Rob Taylor <rob.taylor@codethink.co.uk>
3476 2008-06-08 Philip Van Hoof <pvanhoof@gnome.org>
3478 * girepository/girepository.c:
3479 * girepository/gtypelib.c:
3480 * girepository/ginfo.c:
3481 * girepository/ginvoke.c:
3482 * girepository/girepository.h:
3483 * girepository/gtypelib.h:
3484 * girepository/gmetadata.c:
3485 * girepository/Makefile.am:
3486 * girepository/gmetadata.h:
3488 * tools/gidlmodule.c:
3491 * tools/gidlmodule.h:
3492 * tools/gidlparser.c:
3494 Renamed GMetadata to GTypelib
3496 2008-06-07 Johan Dahlin <jdahlin@async.com.br>
3498 * giscanner/xmlwriter.py:
3499 Improve line wrapping when > 79 charaters
3501 2008-06-05 Jürg Billeter <j@bitron.ch>
3504 * giscanner/girwriter.py:
3505 * giscanner/transformer.py:
3506 Use <type> element for field types
3507 * tests/parser/Foo-expected.gir:
3510 2008-06-04 Johan Dahlin <jdahlin@async.com.br>
3512 * giscanner/glibtransformer.py:
3513 Fix a bug which prevented GdkEvent from being generated
3515 2008-06-03 Johan Dahlin <jdahlin@async.com.br>
3517 * giscanner/Makefile.am:
3519 * giscanner/girwriter.py:
3520 * giscanner/glibast.py:
3521 * giscanner/glibtransformer.py:
3522 * giscanner/transformer.py:
3523 * giscanner/utils.py:
3524 * tests/parser/Foo-expected.gir:
3525 Improve enum member parsing and introspection
3527 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
3529 * giscanner/scannerparser.y:
3530 * giscanner/sourcescanner.h:
3531 * giscanner/sourcescanner.py:
3532 Add a new source type enum for member.
3533 Use __repr__ for improved debugging
3534 * giscanner/girparser.py:
3536 * giscanner/transformer.py:
3537 Improve parsing of struct members.
3538 * tests/parser/foo-object.h:
3541 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
3543 * giscanner/xmlwriter.py:
3544 Improve error reporting when trying to quote None.
3545 * giscanner/girparser.py:
3546 Do not print warnings when including more complete .gir files
3547 * giscanner/girwriter.py:
3548 Do not require a name for parameters, add a todo for singletons
3549 * giscanner/glibtransformer.py:
3550 Refactor the way structs are done, add a couple of hacks to allow
3552 * giscanner/transformer.py:
3553 Add enough hacks so cairo, atk and pango.gir can be parsed properly
3554 * gobject-introspection-1.0.pc.in:
3555 Export girdir, so we can access gobject-2.0.gir from outside
3557 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
3559 * tools/g-ir-scanner:
3560 * tests/parser/Makefile.am:
3561 Update sys.path before running the parser so we don't have
3562 to setup PYTHONPATH ourselves.
3566 * girepository/Makefile.am:
3567 * giscanner/transformer.py:
3568 * gobject-introspection-1.0.pc.in:
3569 * gobject-introspection.pc.in:
3570 * tools/Makefile.am:
3572 Rename pkg-config name to gobject-introspection-1.0,
3573 Do not installed anything which is not using the gir format.
3574 Disable compililation the old C scanner, but still keep the source
3575 until all the remaning functionallity has been ported.
3577 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
3579 * giscanner/giscannermodule.c (symbol_get_ident): Prevent
3580 a crash when symbol->indent is NULL.
3582 * giscanner/sourcescanner.py (ctype_name): Add ctype_name,
3583 a function to convert a CTYPE symbol to a string
3585 2008-05-24 Johan Dahlin <jdahlin@async.com.br>
3588 * giscanner/girwriter.py:
3589 * giscanner/giscannermodule.c
3590 (pygi_source_scanner_append_filename),
3591 (pygi_source_scanner_parse_file):
3592 * giscanner/glibtransformer.py:
3593 * giscanner/sourcescanner.py:
3594 Revert back to using temporary files to send in headers.
3595 Allow Functions to be passed in as callbacks, add a couple
3596 of try/excepts missing features.
3597 We can now scan pango
3599 2008-05-08 Johan Dahlin <johan@gnome.org>
3601 * giscanner/glibtransformer.py:
3602 * giscanner/transformer.py:
3603 Move namespace stripping glibtransformer->transformer
3605 2008-05-08 Johan Dahlin <johan@gnome.org>
3608 * giscanner/girwriter.py:
3609 * giscanner/glibtransformer.py:
3610 * giscanner/transformer.py:
3611 * tools/g-ir-scanner:
3612 Introduce a namespace ast node
3614 2008-05-05 Johan Dahlin <johan@gnome.org>
3616 * giscanner/__init__.py:
3617 * giscanner/sourcescanner.py:
3618 * giscanner/transformer.py:
3619 Move sourcescanner symbols to the sourcescanner module, instead
3620 of in the global __init__ namespace.
3622 2008-05-03 Johan Dahlin <johan@gnome.org>
3624 * giscanner/glibtransformer.py:
3625 * tools/g-ir-scanner:
3626 Handle missing parameters better, allow - and + in .la dlname
3629 2008-05-03 Johan Dahlin <johan@gnome.org>
3631 * giscanner/__init__.py:
3633 * giscanner/girwriter.py:
3634 * giscanner/glibtransformer.py:
3635 * giscanner/transformer.py:
3636 Parse struct fields properly, improve debugging.
3638 2008-04-29 Johan Dahlin <johan@gnome.org>
3641 * giscanner/girwriter.py:
3642 * giscanner/transformer.py:
3643 * tests/parser/Foo-expected.gir:
3645 Use transfer-ownership everywhere, to mark ownership/calle/caller etc.
3647 2008-04-29 Johan Dahlin <jdahlin@async.com.br>
3650 * docs/g-ir-scanner.1:
3651 * metadata-annotations-proposal.txt:
3652 * metadata-format.txt:
3653 Add a basic, unfinshed man page for g-ir-scanner, move documents into .txt
3655 2008-04-29 Johan Dahlin <jdahlin@async.com.br>
3657 * giscanner/girwriter.py:
3658 * giscanner/glibtransformer.py:
3659 * giscanner/transformer.py:
3660 * giscanner/xmlwriter.py:
3661 * tests/parser/Foo-expected.gir:
3662 * tests/parser/foo-object.h:
3663 Write record/structs to gir file too. Add a couple of tests,
3664 fix an off by one error in xmlwriter.py.
3666 2008-04-28 Johan Dahlin <johan@gnome.org>
3668 * giscanner/xmlwriter.py: Calculate the line length properly,
3669 include the provided extra indentation in the calculation, really.
3671 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
3674 * giscanner/glibast.py:
3675 * giscanner/glibtransformer.py:
3676 * giscanner/transformer.py:
3677 * tools/g-ir-scanner:
3678 Add a --strip-prefix and sort out confusion between names and symbols
3679 for functions and struct + derivaties.
3680 Refactor bootstrap of g-ir-scanner, so we can set options on
3681 Transformer() before parsing everything.
3683 2008-04-28 Johan Dahlin <johan@gnome.org>
3685 * giscanner/transformer.py (Transformer._traverse_one): Avoid recursion
3686 when scanning girepository.h
3688 * giscanner/sourcescanner.py (SourceScanner._preprocess): Define
3689 a __GI_SCANNER__ when we run.
3691 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
3694 * giscanner/girwriter.py:
3695 * giscanner/glibast.py:
3696 * giscanner/glibtransformer.py:
3697 * tests/parser/Foo-expected.gir:
3698 * tests/parser/utility-expected.gir:
3699 Rename most c:identifier to c:type. Add new ones to
3700 class/interface/enum/boxed.
3702 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
3705 * giscanner/girwriter.py:
3706 * giscanner/glibtransformer.py:
3707 * tests/parser/Foo-expected.gidl:
3708 * tests/parser/Makefile.am:
3709 Move c:identifier from return-value to subchild type,
3710 as per Jürgs suggestion
3712 2008-04-28 Johan Dahlin <johan@gnome.org>
3714 * giscanner/girwriter.py:
3715 * tests/parser/Foo-expected.gir:
3716 Write property.type as a child node.
3718 2008-04-27 Johan Dahlin <johan@gnome.org>
3723 * gidl/gobject-2.0.gidl:
3725 * gir/gobject-2.0.gir:
3726 * tests/parser/Makefile.am:
3727 Replace the GObject gidl with a GObject gir.
3729 2008-04-27 Johan Dahlin <johan@gnome.org>
3731 * tools/Makefile.am (bin_SCRIPTS): g-ir-scanner is a script,
3734 * giscanner/xmlwriter.py:
3735 * tests/parser/Foo-expected.gir:
3736 Include indentation in line length calculation
3738 2008-04-27 Johan Dahlin <johan@gnome.org>
3740 * giscanner/girparser.py:
3741 Prettify NS parsing using elementtree.
3743 2008-04-27 Johan Dahlin <johan@gnome.org>
3746 * giscanner/Makefile.am:
3747 * giscanner/girparser.py:
3748 * giscanner/glibtransformer.py:
3749 * tests/parser/Foo-expected.gidl:
3750 * tests/parser/Foo-expected.gir:
3751 * tests/parser/Makefile.am:
3752 * tests/parser/utility-expected.gidl:
3753 * tests/parser/utility-expected.gir:
3754 * tools/g-ir-scanner:
3755 Switch over to GIR as the default format. Add a simple GIDL
3757 Update tests and fix simplify makefiles by depending
3758 on GNU make extensions.
3760 2008-04-27 Johan Dahlin <johan@gnome.org>
3762 * giscanner/xmlwriter.py:
3763 Wrap attributes for lines which are wider than 79 characters
3765 * giscanner/scannerlexer.l:
3766 Allow parenthesis in annotations
3769 * giscanner/gidlwriter.py:
3770 * giscanner/girwriter.py:
3771 * giscanner/glibtransformer.py:
3772 * giscanner/transformer.py:
3773 Add initial sequence support, including annotation.
3774 Refactor type handling a bit.
3776 2008-04-27 Johan Dahlin <johan@gnome.org>
3778 * tests/parser/Foo-expected.gidl:
3779 * tests/parser/foo-object.h:
3780 * tests/parser/foo.c (foo_object_class_init),
3781 (foo_object_get_strings), (foo_object_get_objects):
3782 Add two new functions to check sequence return values.
3783 Also fixes a compilation warning.
3785 2008-04-27 Johan Dahlin <johan@gnome.org>
3787 * giscanner/giscannermodule.c (]): Cast the getter, avoids
3788 a compilation warning.
3790 * tools/Makefile.am (g_ir_scanner_SOURCES):
3791 g-ir-scanner has no sources.
3793 2008-04-25 Johan Dahlin <johan@gnome.org>
3795 * giscanner/Makefile.am:
3797 * giscanner/gidlparser.py:
3798 * giscanner/gidlwriter.py:
3799 * giscanner/girwriter.py:
3800 * giscanner/glibast.py:
3801 * giscanner/glibtransformer.py:
3802 * giscanner/transformer.py:
3803 Split out nodes to ast.py and glibast.py
3805 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
3807 * giscanner/Makefile.am:
3808 * giscanner/gidlparser.py:
3809 * giscanner/gidlwriter.py:
3810 * giscanner/girwriter.py:
3811 * giscanner/glibtransformer.py:
3812 * giscanner/gobjecttreebuilder.py:
3813 * giscanner/transformer.py:
3814 * giscanner/treebuilder.py:
3815 * tools/g-ir-scanner:
3816 Rename treebuilder to transformer and
3817 gobjectreebuilder to glibtransformer.
3819 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
3821 * giscanner/Makefile.am:
3822 * giscanner/__init__.py:
3823 * giscanner/cgobject.py:
3824 * giscanner/gidlparser.py:
3825 * giscanner/gidlwriter.py:
3826 * giscanner/girwriter.py:
3827 * giscanner/gobjecttreebuilder.py:
3828 * giscanner/odict.py:
3829 * giscanner/sourcescanner.py:
3830 * giscanner/treebuilder.py:
3831 * giscanner/xmlwriter.py:
3832 * tools/Makefile.am:
3833 * tools/g-ir-scanner:
3834 Add LGPLv2 license header and install all python files
3836 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
3839 * giscanner/gidlwriter.py:
3840 * giscanner/giscannermodule.c (pygi_source_directive_new),
3841 (directive_get_options), (pygi_source_symbol_new),
3842 (symbol_get_base_type), (pygi_source_type_new),
3843 (type_get_base_type), (type_get_child_list),
3844 (pygi_source_scanner_get_symbols),
3845 (pygi_source_scanner_get_directives):
3846 * giscanner/gobjecttreebuilder.py:
3847 * giscanner/sourcescanner.py:
3848 * giscanner/treebuilder.py:
3849 * tests/parser/foo-object.h:
3850 Add support for virtual methods.
3851 Pair struct FooClass with struct Foo.
3852 Clean up the SourceScanner bindings a bit.
3853 Add a testcase for virtual methods.
3855 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
3857 * giscanner/cgobject.py:
3858 * giscanner/gidlwriter.py:
3859 * giscanner/gobjecttreebuilder.py:
3860 Add support for signals
3862 * tests/parser/foo.c (foo_object_class_init):
3863 * Foo-expected.gidl:
3864 Add a signal and update the expected output.
3866 2008-04-24 Johan Dahlin <jdahlin@async.com.br>
3868 * giscanner/gidlwriter.py:
3869 * giscanner/girwriter.py:
3870 * giscanner/giscannermodule.c (directive_get_name),
3871 (directive_get_value), (directive_get_options),
3872 (symbol_get_directives), (symbol_set_directives),
3873 (pygi_source_scanner_parse_file),
3874 (pygi_source_scanner_lex_filename),
3875 (pygi_source_scanner_get_directives), (init_giscanner):
3876 * giscanner/sourcescanner.c (gi_source_scanner_get_directives):
3877 * giscanner/sourcescanner.h:
3878 * giscanner/sourcescanner.py:
3879 * giscanner/treebuilder.py:
3880 * tools/g-ir-scanner:
3881 Add support for source/header annotations.
3883 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
3885 * giscanner/gidlwriter.py:
3886 * giscanner/girwriter.py:
3887 * giscanner/gobjecttreebuilder.py:
3888 * giscanner/treebuilder.py:
3889 Add support for Callbacks
3891 2008-04-22 Havoc Pennington <hp@pobox.com>
3893 * girepository/ginvoke.c (g_function_info_invoke): If a symbol is
3894 not in metadata->module, look for it in the global module, in case
3895 some other object or the app itself provides the symbol.
3897 2008-04-22 Havoc Pennington <hp@pobox.com>
3899 * girepository/gmetadata.c (_g_metadata_init): hack to avoid
3900 dlopening a library that is already in the main app, by checking
3901 whether one of the lib's symbols is already loaded.
3903 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
3905 * tests/parser/Foo-expected.gidl:
3906 * tests/parser/foo-object.h:
3909 2008-04-22 Havoc Pennington <hp@pobox.com>
3911 * girepository/ginfo.c (g_interface_info_find_method):
3912 Use interface_blob_size not object_blob_size to compute offset.
3914 2008-04-22 Havoc Pennington <hp@pobox.com>
3916 * girepository/gmetadata.c (_g_metadata_init): remove
3917 G_MODULE_BIND_LOCAL flag when loading libraries, since some libs
3918 (Glade and Clutter for example) rely on being loaded globally.
3920 2008-04-22 Havoc Pennington <hp@pobox.com>
3922 * girepository/ginfo.c (g_registered_type_info_get_g_type): new
3923 function to get the GType given a RegisteredTypeInfo
3925 2008-04-22 Johan Dahlin <johan@gnome.org>
3927 * COPYING: Add a LGPL license, to prevent automake to
3928 put in a copy of GPL here. Pointed out by Havoc.
3930 * girepository/ginfo.c (g_info_from_entry), (g_type_info_new),
3931 (g_type_info_is_pointer), (g_type_info_get_tag),
3932 (g_type_info_get_param_type), (g_type_info_get_interface),
3933 (g_type_info_get_array_length), (g_type_info_is_zero_terminated),
3934 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
3935 (g_error_domain_info_get_codes), (g_enum_info_get_value),
3936 (g_object_info_get_interface), (g_object_info_get_field),
3937 (g_interface_info_get_prerequisite),
3938 (g_signal_info_get_class_closure), (g_constant_info_get_value):
3939 * girepository/ginvoke.c (get_ffi_type):
3940 * girepository/girepository.h:
3941 * girepository/gmetadata.c (g_metadata_get_dir_entry),
3942 (g_metadata_check_sanity), (validate_header),
3943 (validate_array_type_blob), (validate_iface_type_blob),
3944 (validate_param_type_blob), (validate_error_type_blob),
3945 (validate_type_blob), (validate_constant_blob),
3946 (validate_struct_blob), (validate_enum_blob):
3947 * girepository/gmetadata.h:
3948 * tests/Makefile.am:
3949 * tests/invoke/Makefile.am:
3950 * tests/invoke/invoke.c (main):
3951 * tests/roundtrips.sh:
3952 * tools/Makefile.am:
3953 * tools/compiler.c (format_output), (write_out_metadata), (main):
3954 * tools/generate.c (write_type_name), (write_type_info),
3955 (write_constant_value), (write_enum_info), (load_metadata), (main):
3956 * tools/gidlcompilercontext.c:
3957 * tools/gidlcompilercontext.h:
3958 * tools/gidlcompilerentrynode.c:
3959 * tools/gidlcompilerentrynode.h:
3960 * tools/gidlcompilertypenode.c:
3961 * tools/gidlcompilertypenode.h:
3962 * tools/gidlmodule.c (g_idl_module_build_metadata):
3963 * tools/gidlmodule.h:
3964 * tools/gidlnode.c (init_stats), (dump_stats),
3965 (g_idl_node_get_size), (g_idl_node_get_full_size),
3966 (g_idl_node_cmp), (g_idl_node_can_have_member),
3967 (g_idl_node_add_member), (g_idl_node_param_direction_string),
3968 (parse_int_value), (parse_uint_value), (parse_float_value),
3969 (parse_boolean_value), (find_entry_node), (find_entry),
3970 (serialize_type), (g_idl_node_build_metadata), (write_string):
3972 * tools/gidlparser.c (parse_type_internal):
3973 * tools/quote-file.sh:
3974 Revert revisions 157,149-148,136-129 and 120.
3975 Move back to using g-idl-generate to generate the metadata and
3976 avoids dependency on a c compiler.
3978 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
3980 * giscanner/girwriter.py:
3981 * tools/g-ir-scanner:
3982 Add an initial GIR writer and a --format option to g-ir-scanner
3984 2008-04-21 Johan Dahlin <johan@gnome.org>
3986 * giscanner/cgobject.py: Use ctypes.util.find_library to locate
3987 gobject-2.0 and raise ImportError if not found.
3989 * giscanner/gidlparser.py:
3990 * giscanner/gidlwriter.py:
3991 * giscanner/gobjecttreebuilder.py:
3992 * tools/g-ir-scanner:
3993 Add a --include argument to include types from other idls.
3994 Add a minimalistic GIDL parser (just objects for now)
3995 Implement resolving of external type references and use it to
3996 resolve parent types, argument types and return types.
3998 2008-04-21 Johan Dahlin <johan@gnome.org>
4000 * giscanner/gidlwriter.py:
4001 * giscanner/gobjecttreebuilder.py:
4002 * giscanner/treebuilder.py:
4003 Add support for properties.
4004 Refactor Class/Interface support a bit, to share more code and
4005 always initialize their method attribute to an empty list.
4007 2008-04-21 Johan Dahlin <johan@gnome.org>
4009 * giscanner/cgobject.py:
4010 Add a workaround for a glib bug interface introspection bug
4011 (object_interface_list_properties, object_class_list_properties):
4012 Cast the return value to GParamSpec.
4014 * tests/parser/Foo-expected.gidl: Update
4015 * tests/parser/foo.c: Add a string property
4017 * giscanner/gobjecttreebuilder.py:
4018 After stripping namespaces, remove the original
4019 item to avoid duplication (GtkButton struct and Button object)
4021 2008-04-21 Johan Dahlin <johan@gnome.org>
4023 * giscanner/gobjecttreebuilder.py:
4024 * giscanner/treebuilder.py:
4025 Strip namespaces before objects, so we'll export
4026 GtkButton as Button in the gtk namespace
4028 2008-04-21 Johan Dahlin <johan@gnome.org>
4030 * giscanner/gidlwriter.py:
4031 * giscanner/gobjecttreebuilder.py:
4032 * giscanner/treebuilder.py:
4033 Add constructors for object/boxed types.
4035 2008-04-21 Johan Dahlin <johan@gnome.org>
4037 * giscanner/gidlwriter.py:
4038 * giscanner/gobjecttreebuilder.py:
4039 Add support for boxed types
4041 2008-04-21 Johan Dahlin <johan@gnome.org>
4043 * giscanner/giscannermodule.c: Mark structures as const,
4044 wrap SourceType.const_string.
4046 * tests/parser/foo-object.h: Add a couple of constants.
4048 * giscanner/gidlwriter.py:
4049 * giscanner/gobjecttreebuilder.py:
4050 * giscanner/treebuilder.py:
4051 Add basic support for interfaces
4053 * tools/g-ir-scanner:
4054 Add -o/--output for writing to a file
4056 2008-04-21 Havoc Pennington <hp@redhat.com>
4058 * TODO: add some C API wishlist items I could think of quickly
4060 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
4062 * giscanner/gidlwriter.py:
4063 * giscanner/xmlwriter.py:
4064 Add a simple api for writing tags which can be used
4065 with the new 'with statement' in python 2.5
4067 2008-04-21 Johan Dahlin <johan@gnome.org>
4069 * giscanner/gobjecttreebuilder.py:
4070 Strip namespace and object prefix from method names.
4072 2008-04-21 Johan Dahlin <johan@gnome.org>
4074 * tools/g-ir-scanner (main): Add --pkg option to pass in
4075 pkg-config modules to get cflags from.
4077 * giscanner/gidlwriter.py (GIDLWriter._write_method):
4078 Avoid duplication, reuse function writer for methods.
4080 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
4082 * giscanner/gidlwriter.py:
4083 * giscanner/gobjecttreebuilder.py:
4084 * giscanner/treebuilder.py:
4085 * tools/g-ir-scanner:
4086 Resolve libtool .la files.
4087 Strip name spaces for methods.
4088 Add function symbols
4090 2008-04-20 Johan Dahlin <jdahlin@async.com.br>
4092 * giscanner/cgobject.py:
4093 * giscanner/gidlwriter.py:
4094 * giscanner/gobjecttreebuilder.py:
4095 * giscanner/treebuilder.py:
4096 Add support for classes and methods
4098 2008-04-20 Johan Dahlin <johan@gnome.org>
4100 * giscanner/gidlwriter.py:
4101 * giscanner/gobjecttreebuilder.py:
4102 * giscanner/odict.py:
4103 Avoid conflicts, keep the output ordered similar to
4104 the order of the input.
4105 Add a simple ordered dictionary implemenation
4107 2008-04-19 Johan Dahlin <johan@gnome.org>
4109 * giscanner/cgobject.py:
4110 * giscanner/gidlwriter.py:
4111 * giscanner/gobjecttreebuilder.py:
4112 * tools/g-ir-scanner:
4113 Start introspecting get-type functions.
4114 Implement support for GLib/GFlags GTypes.
4115 Add a ctype based GObject binding.
4117 2008-04-18 Johan Dahlin <jdahlin@async.com.br>
4119 * giscanner/gidlwriter.py:
4120 * giscanner/xmlwriter.py:
4121 * tools/g-ir-scanner:
4122 Add a simplistic gidl writer, which can't do too much.
4124 2008-04-18 Johan Dahlin <johan@gnome.org>
4126 * giscanner/sourcescanner.py:
4127 * giscanner/treebuilder.py:
4128 * tools/g-ir-scanner:
4129 split tree building and source scanning interface to separate files.
4131 2008-04-18 Johan Dahlin <johan@gnome.org>
4133 * tools/g-ir-scanner (Parameter.__init__): Start constructing
4135 - Add support for struct/parameter/return, start parsing of ctypes
4137 * giscanner/giscannermodule.c: wrap GISourceType.child_list and
4140 2008-03-31 Johan Dahlin <johan@gnome.org>
4142 * tools/g-ir-scanner:
4143 Start to build abstract syntax node of scanned sources.
4144 Add support for cpp options.
4146 2008-03-27 Johan Dahlin <johan@gnome.org>
4148 * giscanner/giscannermodule.c:
4149 * giscanner/scannerlexer.l:
4150 * giscanner/sourcescanner.c:
4151 * tools/g-ir-scanner:
4153 Add simple pre-processor using subprocess and a PIPE.
4154 Change the parse_file apis to accept a file descriptor.
4156 2008-03-25 Johan Dahlin <johan@gnome.org>
4158 * giscanner/__init__.py:
4159 * tools/g-ir-scanner:
4160 Fix a typo and add an example python test program.
4162 2008-03-25 Johan Dahlin <johan@gnome.org>
4164 * giscanner/__init__.py:
4165 * giscanner/giscannermodule.c:
4166 * giscanner/sourcescanner.c:
4167 * giscanner/sourcescanner.h:
4168 Add constants and wrap a few more SymbolType fields
4170 2008-03-25 Johan Dahlin <johan@gnome.org>
4174 * giscanner/__init__.py:
4175 * giscanner/giscannermodule.c:
4176 * giscanner/Makefile.am:
4178 Add initial python bindings for the scanner and
4179 depend on python 2.5.
4181 2008-03-25 Johan Dahlin <johan@gnome.org>
4185 * giscanner/Makefile.am:
4186 * giscanner/sourcescanner.c:
4187 * giscanner/sourcescanner.h:
4188 * tools/Makefile.am:
4189 * tools/grealpath.h:
4190 * tools/sourcescanner.c:
4191 * tools/sourcescanner.h:
4193 Move the scanner to a separate library.
4195 2008-03-23 Johan Dahlin <johan@gnome.org>
4197 * tools/Makefile.am:
4200 * tools/scannerlexer.l:
4201 * tools/scannerparser.y:
4202 * tools/sourcescanner.c:
4203 * tools/sourcescanner.h:
4204 Split out the source scanner from the generator.
4205 Rename the symbols used in the scanner to use the gi_ prefix.
4206 This should make it possible to use the raw C parser from
4209 2008-03-23 Johan Dahlin <johan@gnome.org>
4211 * tests/parser/Makefile.am (utility.gidl):
4212 * tests/parser/utility-expected.gidl:
4213 Pass in the gobject.gidl since we're defining a GObject.
4215 2008-03-12 Johan Dahlin <johan@gnome.org>
4217 * relaxng/relaxng.rng:
4218 Add a releaxng in relaxng we can use to validate the relaxngs
4221 2008-03-12 Jürg Billeter <j@bitron.ch>
4223 * tools/scanner.c: (g_igenerator_new):
4224 * tools/scannerparser.y:
4225 Fix compiler warnings.
4227 2008-03-12 Jürg Billeter <j@bitron.ch>
4231 * tools/scannerparser.y:
4232 Start fixing memory management in g-idl-scanner.
4234 2008-03-12 Rob Taylor <rob.taylor@codethink.co.uk>
4236 * tools/gidlcompilercontext.c: (write_compiled):
4237 Fix critical warning when no shlib passed to g-idl-compiler.
4239 2008-03-12 Johan Dahlin <johan@gnome.org>
4241 * tests/parser/utility-expected.gidl:
4242 * tests/parser/utility.h:
4243 Add a get_type-function, so the scanner actually
4244 parses it as an object.
4246 2008-03-12 Johan Dahlin <johan@gnome.org>
4248 * tools/gidlwriter.c (function_generate): Add missing trailing quote.
4251 * tests/parser/Foo-expected.gidl:
4252 * tests/parser/Makefile.am:
4253 * tests/parser/foo-object.h:
4254 * tests/parser/foo.c:
4255 * tests/parser/utility-expected.gidl:
4256 * tests/parser/utility.c:
4257 * tests/parser/utility.h:
4259 Add a new gidl test. 'utility.gidl', which is used to be able
4260 to test external type references. Add a reference to UtilityObject*
4263 2008-03-11 Johan Dahlin <johan@gnome.org>
4267 Remove most global variables
4269 2008-03-11 Philip Van Hoof <me@pvanhoof.be>
4271 * tools/scannerlexer.l:
4273 * tests/parser/Foo-expected.gidl:
4274 * tests/parser/foo.c:
4275 * tests/parser/Makefile.am:
4276 * tests/parser/foo-object.h:
4278 Added a few extra tests. Which resulted in finding a few
4279 bugs. Which resulted in me fixing those bugs
4281 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
4283 * tools/gidlcompilercontext.c: (g_idl_compiler_write_dir_entry),
4284 (g_idl_compiler_write_xref_entry), (g_idl_compiler_add_xref):
4285 Add some comments for strings into generated output for
4288 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
4290 * tools/gidlcompilercontext.c: (write_compiled):
4291 Write out the shlibs variable before writing out the strings
4292 length. Fixes compiler warning when using '-l' flag with
4295 2008-03-11 Johan Dahlin <johan@gnome.org>
4297 * tests/parser/Foo-expected.gidl:
4298 * tests/parser/foo-object.h:
4301 * tools/scannerlexer.l:
4302 Add support for parsing return arguments. Add support for
4303 caller-owns return types.
4304 Patch by Philip Van Hoof.
4306 * tools/scannerparser.y:
4307 Remove parsing of the @deprecated syntax used in headers.
4308 We will support gtk-doc deprecation in the future instead.
4310 2008-03-11 Johan Dahlin <johan@gnome.org>
4312 * tools/compiler.c (main): Coding style fixes
4314 2008-03-10 Johan Dahlin <johan@gnome.org>
4317 Add GCOV_LIBS to GILIBS
4319 2008-03-10 Johan Dahlin <johan@gnome.org>
4321 * tests/parser/Foo-expected.gidl:
4322 * tests/parser/foo.c:
4323 Rename null-ok to direction=out
4325 2008-03-10 Philip Van Hoof <me@pvanhoof.be>
4327 reviewed and extensively tested by Johan
4329 * tests/parser/Foo-expected.gidl:
4330 * tests/parser/foo-object.h:
4331 * tests/parser/foo.c:
4334 * tools/gidlwriter.c:
4337 * tools/scannerlexer.l:
4338 * tools/scannerparser.y:
4340 Add support for scanning for gtk-doc comments inside
4341 C source files. Add tests
4343 2008-03-10 Johan Dahlin <johan@gnome.org>
4345 * tests/parser/Makefile.am:
4346 * tests/parser/foo.c:
4349 * tools/scannerparser.y:
4350 Add an api to lex filenames.
4351 Lex all source .c files passed in on the command line.
4352 Scan sources in a test and a couple of private structures
4353 which should not be included in the generated gidl
4355 2008-03-10 Johan Dahlin <johan@gnome.org>
4357 * tests/invoke/Makefile.am: Make the generated metadata
4358 depend on the g-idl-compiler
4360 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
4362 * tools/gidlmodule.c
4363 * tools/gidlmodule.h
4366 Remove the old g-idl-compiler code.
4369 2008-02-22 Mark Doffman <mark.doffman@codethink.co.uk>
4371 * tools/quote-file.sh
4374 Move to using the 'C' struct compiler code.
4376 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
4378 * girepository/ginfo.c
4380 Change the way that external references with no namespace
4381 are dealt with. External references with no namespace
4382 are placed into the XML as-if they are a local reference.
4383 This is temporary, but helps with roundtrip tests.
4385 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
4387 * girepository/ginfo.c
4388 Add the ability to get the value of a constant of
4389 type TYPE_TAG_SYMBOL. In the case of a symbol the value
4390 is provided as a string.
4392 This would deal properly with:
4393 typedef char* random;
4394 const random = "A string";
4396 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
4398 * girepository/ginfo.c
4399 * girepository/girepository.h
4401 Add a function to check if an enum is registered or not.
4402 Previously anything testing this relied on the g-type
4403 string offset having a value of 0.
4405 * girepository/gmetadata.c
4406 * girepository/gmetadata.h
4408 Remove unneccesary or erroneous checks. There were two
4409 metadata validation checks which made sure that the blob
4410 sizes were the same as some magic numbers compiled into the code.
4411 This is wrong as it breaks any forwards compatibility that may
4414 Checks were also present that made sure that unregistered type
4415 blobs had a value of 0 in the g-type offset field. This is
4416 unneccessary. If a type blob is unregistered then any value
4417 in its g-type field is simply invalid.
4419 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
4421 * girepository/ginfo.c
4422 * girepository/gmetadata.c
4423 * girepository/gmetadata.h
4425 Change the metadata format to have a standard header
4426 for all the type blobs. Merge the SimpleTypeBlob
4427 and InterfaceTypeBlob into a union. A union of these
4428 two blobs existed previously but was not explicit
4429 in the metadata format.
4431 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
4433 * tools/gidlcompilercontext.c
4434 * tools/gidlcompilercontext.h
4435 * tools/gidlcompilerentrynode.c
4436 * tools/gidlcompilerentrynode.h
4437 * tools/gidlcompilertypenode.c
4438 * tools/gidlcompilertypenode.h
4440 Add code to compile a tree of GIdlNodes to
4441 a 'C' struct representing the metadata.
4442 This is to aid cross-compiling. Previously
4443 the g-idl-compiler created a binary blob with
4444 data written in the byte order and alignment
4445 of the tool rather than the intended target.
4447 Cleaned up and improved by Johan and Robert :-)
4449 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
4451 * girepository/ginvoke.c
4452 * girepository/girepository.h
4453 * girepository/gmetadata.c
4454 * girepository/gmetadata.h
4456 * tools/gidlparser.c
4457 Modify TYPE_TAG_INTERFACE to TYPE_TAG_SYMBOL
4458 to avoid confusion with the interface blob.
4461 * tools/gidlparser.c
4462 Remove magic numbers and replace with type-tag
4463 enumeration symbols.
4465 * girepository/gmetadata.c
4466 Add validate declaration.
4468 2008-03-10 Jürg Billeter <j@bitron.ch>
4470 * tools/gidlparser.c: (parse_type_internal):
4471 * tools/scannerlexer.l:
4472 * tools/scannerparser.y:
4473 Support C99 _Bool type in scanner.
4475 2008-03-10 Jürg Billeter <j@bitron.ch>
4477 * tests/parser/Foo-expected.gidl:
4478 * tests/parser/foo-object.h:
4479 * tests/parser/foo.c: (foo_enum_method):
4480 * tools/scanner.c: (g_igenerator_process_function_symbol):
4481 Don't skip functions that are defined in the namespace of a type
4482 that doesn't support methods, as for example enums.
4484 2008-03-10 Johan Dahlin <johan@gnome.org>
4486 * gidl.dtd: Remove, we're using relaxng for now
4488 * tests/parser/Foo-expected.gidl:
4489 * tests/parser/foo-object.h:
4490 * tests/parser/foo.c:
4491 Rename the enum/flags get_type functions to include the whole type.
4493 2008-03-08 Marc-Andre Lureau <marcandre.lureau@gmail.com>
4495 * tools/gidlwriter.c (enum_generate): added "type-name",
4496 "get-type" and "deprecated" missing arguments.
4497 * tests/parser/Foo-expected.gidl:
4498 * tests/parser/foo-object.h: test enum type, and no type.
4500 2008-03-06 Johan Dahlin <jdahlin@async.com.br>
4503 Consistent checks, add missing 'test'
4505 2008-03-05 Havoc Pennington <hp@redhat.com>
4507 * configure.ac: Take advantage of a libffi.pc if one exists, as it
4508 does on Fedora 8. Make libffi a hard requirement, since it was in
4509 practice anyway (was not really conditional in the code or
4510 makefile, only in configure).
4512 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
4514 reviewed by: Rob Taylor <rob.taylor@codethink.co.uk>
4515 reviewed by: Johan Dahlin <johan@gnome.org>
4517 * tests/Makefile.am:
4518 * tests/roundtrips.sh:
4519 Modify the roundtrips test so that they do not use the
4520 --raw option of the gidl compiler but instead compile a
4521 shared library to use with g_module.
4523 * tests/invoke/Makefile.am:
4524 * tests/invoke/invoke.c:
4525 Modify the invoke tests to build a shared library rather
4526 than use the --raw option.
4528 * tests/invoke/invoke-namespace-find.sh: Removed:
4529 Noone knows why this was here, so removed.
4531 2008-02-19 Rob Taylor <rob.taylor@codethink.co.uk>
4533 * tools/scanner.c: (g_igenerator_process_function_symbol):
4534 Move g_idl_node_can_have_member test later, as it broke spotting
4535 get_type's for nodes that can't have members.
4537 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
4540 * tools/gidlnode.c: (g_idl_node_can_have_member):
4541 Add g_idl_node_can_have_member.
4543 * tools/scanner.c: (g_igenerator_process_function_symbol):
4544 Use g_idl_node_can_have_member to test if we should add a function
4545 as a member of the type node.
4547 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
4549 * gidl/GLib.gidl: Renamed to gidl/gobject-2.0.gidl:
4551 * tests/parser/Makefile.am:
4552 Rename GLib.gidl to gobject-2.0.gidl and install in /usr/share/gidl.
4554 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
4556 * tools/scanner.c: (main):
4557 Ignore -pthread when passed to g-idl-scanner.
4559 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
4561 * tools/grealpath.h: Added:
4562 * tools/scanner.c: (main):
4563 * tools/scannerlexer.l:
4564 * tools/Makefile.am:
4565 Always use absolute paths with symbolic links resolved when
4566 comparing filenames.
4568 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
4570 * gobject-introspection.pc.in:
4571 Provide variables for g-idl-parser, scanner and compiler in the
4574 2008-02-13 Rob Taylor <rob.taylor@codethink.co.uk>
4577 * girepository/Makefile.am:
4578 * tools/Makefile.am:
4579 Rename GCOV_SOURCES to GCOVSOURCES to top automake complaining.
4581 2008-02-10 Johan Dahlin <johan@gnome.org>
4583 * tests/parser/Foo-expected.gidl:
4584 * tests/parser/foo-object.h:
4585 * tests/parser/foo.c: (foo_boxed_copy), (foo_boxed_free),
4586 (foo_boxed_get_type), (foo_boxed_new), (foo_boxed_method):
4589 2008-02-10 Johan Dahlin <johan@gnome.org>
4591 * tests/parser/Foo-expected.gidl:
4592 * tests/parser/foo-object.h:
4593 * tests/parser/foo.c: (foo_enum_get_type), (foo_flags_get_type):
4594 Add enum and flags test.
4596 2008-02-10 Johan Dahlin <johan@gnome.org>
4600 * girepository/Makefile.am:
4601 Make 'make distcheck' work again.
4603 2008-02-10 Johan Dahlin <johan@gnome.org>
4605 * m4/Makefile.am (EXTRA_DIST): its called as-compiler-flag.m4,
4608 * tests/parser/Makefile.am: Only create Foo.gidl when running make
4609 check, eg exclude it from BUILT_SOURCES.
4611 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
4616 * girepository/Makefile.am:
4617 * m4/Makefile.am: Added:
4618 * m4/as-compiler-flag.m4: Added:
4619 * m4/gcov.m4: Added:
4620 * tools/Makefile.am:
4621 Add ability to generate a coverage report.
4622 Adds configure option --enable-gcov and make rule 'check-coverage'.
4624 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
4628 * gidl/Makefile.am: Added:
4629 * girepository/Makefile.am: Added:
4630 * src/Makefile.am: Renamed to tools/Makefile.am:
4631 * src/compiler.c: Renamed to tools/compiler.c:
4632 * src/g-idl-offsets.pl: Renamed to tools/g-idl-offsets.pl:
4633 * src/generate.c: Renamed to tools/generate.c:
4634 * src/gidlmodule.c: Renamed to tools/gidlmodule.c:
4635 * src/gidlmodule.h: Renamed to tools/gidlmodule.h:
4636 * src/gidlnode.c: Renamed to tools/gidlnode.c:
4637 * src/gidlnode.h: Renamed to tools/gidlnode.h:
4638 * src/gidlparser.c: Renamed to tools/gidlparser.c:
4639 * src/gidlparser.h: Renamed to tools/gidlparser.h:
4640 * src/gidlwriter.c: Renamed to tools/gidlwriter.c:
4641 * src/gidlwriter.h: Renamed to tools/gidlwriter.h:
4642 * src/ginfo.c: Renamed to girepository/ginfo.c:
4643 * src/ginvoke.c: Renamed to girepository/ginvoke.c:
4644 * src/girepository.c: Renamed to girepository/girepository.c:
4645 * src/girepository.h: Renamed to girepository/girepository.h:
4646 * src/gmetadata.c: Renamed to girepository/gmetadata.c:
4647 * src/gmetadata.h: Renamed to girepository/gmetadata.h:
4648 * src/scanner.c: Renamed to tools/scanner.c:
4649 * src/scanner.h: Renamed to tools/scanner.h:
4650 * src/scannerlexer.l: Renamed to tools/scannerlexer.l:
4651 * src/scannerparser.y: Renamed to tools/scannerparser.y:
4652 * tests/invoke/Makefile.am:
4653 Split src/ into girepository/ and tools/
4657 * girepository/Makefile.am:
4658 * tests/Makefile.am:
4659 * tests/invoke/Makefile.am:
4660 * tests/parser/Makefile.am:
4661 * tests/roundtrips.sh:
4662 * tools/Makefile.am:
4663 Make distcheck work.
4665 2008-02-04 Rob Taylor <rob.taylor@codethink.co.uk>
4667 * tests/invoke/invoke.c: (main):
4668 * tests/invoke/testfns.c: (test6), (test7):
4669 * tests/invoke/testfns.xml:
4670 Add tests for invokation with a GList argument.
4671 Also tests caller-owns return values.
4673 2008-02-04 Rob Taylor <robtaylor@floopily.org>
4676 Add some documentation for GICallableInfo
4678 2008-02-01 Mark Doffman <mark.doffman@codethink.co.uk>
4681 Correct syntax errors in the DTD file.
4683 * relaxng/c-types.xml:
4684 * relaxng/g-types.xml:
4686 Add a RelaxNG specification for the GObject Introspection XML data.
4687 The Specification has validated all of the test files.
4689 2008-01-25 Rob Taylor <robtaylor@floopily.org>
4691 * tests/roundtrips.sh:
4692 * tests/struct.test:
4693 Add roundtrip tests for structs.
4695 2008-01-11 Johan Dahlin <johan@gnome.org>
4697 * src/scanner.c (g_igenerator_process_function_symbol):
4698 Refactor out g_idle_node_add_member.
4699 (create_node_from_gtype, create_node_from_ctype):
4700 Use case instead of if...else
4701 (get_type_from_type_id):
4702 Rename to create_node_from_gtype
4703 (get_type_from_ctype):
4704 Rename to create_node_from_ctype
4706 Rename ginode -> node, gitype -> type, gifunc -> func.
4708 * src/gidlnode.c (g_idl_node_add_member, g_idl_node_cmp):
4709 Two new functions, refactor out of scanner.c
4711 * src/scanner.c: (g_igenerator_process_function_symbol):
4712 * src/scannerlexer.l:
4713 Do not save the content of the deprecated variable, only
4716 2008-01-11 Johan Dahlin <johan@gnome.org>
4718 * tests/parser/foo-object.h: Add a couple of comment parser tests.
4720 2008-01-11 Jürg Billeter <j@bitron.ch>
4722 * src/scannerlexer.l:
4723 Fix GTK-Doc parsing.
4725 2008-01-11 Jürg Billeter <j@bitron.ch>
4727 * src/scannerlexer.l:
4728 Fix GTK-Doc parsing.
4730 2008-01-11 Jürg Billeter <j@bitron.ch>
4732 * src/scanner.c: (lookup_symbol):
4733 Return unresolved name if we find unknown symbol.
4735 2008-01-11 Jürg Billeter <j@bitron.ch>
4737 * src/scanner.c: (g_igenerator_generate):
4738 Initialize GObject to fix scanning interface properties.
4740 * tests/parser/Foo-expected.gidl:
4741 * tests/parser/foo-object.h:
4742 * tests/parser/foo.c: (foo_interface_get_type):
4743 Test interfaces with GObject prerequisite.
4745 * tests/parser/Makefile.am:
4746 Set G_DEBUG=fatal_warnings to abort test on warnings and criticals.
4748 2007-12-27 Johan Dahlin <johan@gnome.org>
4750 * src/scannerlexer.l:
4751 Parse gtk-doc comments.
4753 * src/gidlwriter.c: (function_generate):
4754 Reorganize, avoid duplication and add support for
4755 writing deprecated functions.
4757 * src/scannerparser.y:
4759 Add new structure CDirective and functions to create/free them.
4761 * src/scanner.c: (g_igenerator_process_function_symbol),
4762 (g_igenerator_process_unregistered_struct_typedef),
4763 (g_igenerator_process_struct_typedef),
4764 (g_igenerator_process_union_typedef),
4765 (g_igenerator_process_enum_typedef),
4766 (g_igenerator_process_function_typedef), (g_igenerator_add_symbol),
4767 (g_igenerator_start_preprocessor):
4768 Parse @deprecated directive for functions.
4769 Remove some more C99isms.
4770 Send in -C to cpp to avoid stripping comments.
4772 * tests/parser/foo-object.h:
4773 * tests/parser/Foo-expected.gidl:
4774 Add deprecated directive
4776 2007-12-27 Johan Dahlin <johan@gnome.org>
4778 * src/scannerlexer.l (intsuffix): Add emacs mode line and
4779 escape ' and " so it looks more like C.
4782 Unlink temporary file used.
4784 2007-12-27 Johan Dahlin <johan@gnome.org>
4786 * src/scanner.c: (g_igenerator_new), (g_igenerator_free),
4787 (g_igenerator_start_preprocessor), (main):
4789 * src/scannerparser.y:
4790 Plug a couple of simple memory leaks.
4792 2007-12-27 Johan Dahlin <johan@gnome.org>
4794 * src/scanner.c: (g_igenerator_parse_macros),
4795 (g_igenerator_start_preprocessor), (g_igenerator_set_verbose),
4798 * src/scannerparser.y:
4799 * tests/parser/Makefile.am:
4801 Improve error reporting, return when the preprocessor fails.
4802 Add a verbose parameter, to aid debugging.
4803 Revert to using a temporary file to communicate between the
4804 preprocessor and the parser, because we need to wait for
4805 the exit code from the pre-processor before starting to parse.
4807 2007-12-16 Johan Dahlin <jdahlin@async.com.br>
4809 * src/Makefile.am: Rename clexer.l to scannerlexer.l and
4810 cparser.y to scannerparser.y
4812 2007-12-11 Johan Dahlin <johan@gnome.org>
4816 * src/scanner.c: (g_igenerator_new):
4818 Get rid of the global the_generator variable.
4820 2007-12-10 Johan Dahlin <johan@gnome.org>
4822 * src/scanner.c (main): Add an output option,
4823 add checks for required parameters
4826 set BUILD_SOURCES and CLEANFILES properly
4828 * src/gidlwriter.c: (g_writer_write_inline), (g_writer_write),
4829 (g_writer_write_indent), (g_writer_write_unindent),
4830 (field_generate), (value_generate), (constant_generate),
4831 (property_generate), (function_generate), (vfunc_generate),
4832 (signal_generate), (interface_generate), (struct_generate),
4833 (union_generate), (boxed_generate), (enum_generate),
4834 (node_generate), (g_writer_write_module), (g_idl_writer_save_file):
4836 * src/scanner.c: (g_igenerator_generate):
4838 * src/scannerwriter.c:
4840 Refactor scannerwriter to only be tied to a GIdlModule and move
4841 it (again!) to gidlwriter.c. Change the writer function to take
4844 2007-12-10 Johan Dahlin <johan@gnome.org>
4847 * src/scanner.c: (g_igenerator_generate):
4849 * src/scannerwriter.c: (g_igenerator_write_inline),
4850 (g_igenerator_write), (g_igenerator_write_indent),
4851 (g_igenerator_write_unindent), (field_generate), (value_generate),
4852 (constant_generate), (property_generate), (function_generate),
4853 (vfunc_generate), (signal_generate), (interface_generate),
4854 (struct_generate), (union_generate), (boxed_generate),
4855 (enum_generate), (node_generate), (module_generate),
4856 (g_scanner_write_file):
4858 Move the scanner gidl writing to a separate source file.
4860 2007-12-10 Johan Dahlin <johan@gnome.org>
4865 Move over all CType construction functions.
4867 * tests/parser/Makefile.am:
4868 Be verbose when printing parsing tests results.
4870 2007-12-10 Johan Dahlin <johan@gnome.org>
4872 * src/scanner.c (g_igenerator_start_preprocessor): Refactor
4873 preprocessor handling to here. Start cpp insteado of cc -E,
4874 always include -U__GNUC__, since it's specific to the preprocessor
4877 * tests/parser/Makefile.am (check-local): Silent diff and skip
4878 -U__GNUC__ which is always defined now
4880 2007-12-10 Johan Dahlin,,, <jdahlin@plasttroll>
4882 reviewed by: <delete if not using a buddy>
4884 * src/scanner.c: (g_igenerator_start_preprocessor), (main):
4885 * tests/parser/Makefile.am:
4887 2007-12-09 Johan Dahlin <johan@gnome.org>
4890 Use GOption for command line options.
4891 (g_igenerator_new, main): Simplify constructor and they way
4892 parameters are passed into it.
4898 * src/gen-introspect.c:
4899 * src/gen-introspect.h:
4901 Rename gen-introspect.[ch] to scanner.[ch]
4903 2007-12-09 Johan Dahlin <johan@gnome.org>
4907 * src/Makefile.am: Rename gen-introspect to g-idl-scanner,
4908 don't make the repository library and the other utilites link against
4911 * src/gen-introspect.c: (g_igenerator_create_object),
4912 (g_igenerator_create_interface), (g_igenerator_create_boxed),
4913 (g_igenerator_create_enum), (g_igenerator_create_flags),
4914 (g_igenerator_process_module_symbol),
4915 (g_igenerator_process_module), (g_igenerator_generate), (main):
4916 * src/gen-introspect.h:
4917 Refactor g_igenerator_process_types into smaller pieces.
4919 * tests/parser/Makefile.am:
4920 Depend on the gen-introspect binary
4922 2007-12-09 Johan Dahlin <johan@gnome.org>
4924 * src/gen-introspect.c (g_igenerator_process_types):
4925 Break into smaller pieces, one for each generated node type.
4927 2007-12-08 Johan Dahlin <johan@gnome.org>
4929 * src/gen-introspect.c: (g_igenerator_process_types),
4930 (g_igenerator_add_module):
4931 * tests/parser/Foo-expected.gidl:
4932 * tests/parser/foo-object.h:
4933 * tests/parser/foo.c: (foo_subobject_class_init),
4934 (foo_subobject_init):
4936 Add a subobject test and make sure to register defined classes
4937 in the lookup symbol hash table.
4939 2007-12-08 Johan Dahlin <johan@gnome.org>
4943 * src/gen-introspect.c: (g_igenerator_new), (lookup_symbol),
4944 (g_igenerator_process_types), (g_igenerator_add_module),
4945 (g_igenerator_add_include_idl), (main):
4946 * src/gen-introspect.h:
4947 * tests/parser/Makefile.am:
4948 * tests/parser/Foo-expected.gidl:
4950 Change the gen-introspect to generate namespaced module names,
4951 such as GLib.Object instead of GObject.
4952 Add a GLib.gidl which introduces GLib.Object and GLib.InitiallyUnowned,
4953 add a --include-idl parameter to gen-introspect,
4954 and update the parser test.
4956 2007-12-08 Johan Dahlin <johan@gnome.org>
4958 * src/gen-introspect.c:
4959 Move main to the end of the file and attempt to make it valid
4962 * tests/parser/Makefile.am (BUILT_SOURCES): Remove .repo here,
4963 we're not quite ready to generate metadata yet.
4968 Add a simple gen-introspect parser test
4970 2007-12-06 Gustavo J. A. M. Carneiro <gjc@gnome.org>
4972 reviewed by: Johan Dahlin <johan@gnome.org>
4975 * gobject-introspection.pc.in:
4977 * src/compiler.c: (format_output), (write_out_metadata), (main):
4978 * src/gen-introspect.c: (main):
4979 * src/gen-introspect.h:
4980 * src/generate.c: (write_callable_info), (write_repository),
4981 (load_metadata), (main):
4982 * src/gidlmodule.c: (g_idl_module_new),
4983 (g_idl_module_build_metadata):
4985 * src/gidlparser.c: (start_element_handler):
4986 * src/ginfo.c: (g_info_new), (g_info_from_entry),
4987 (g_base_info_get_name), (g_base_info_get_namespace),
4988 (g_base_info_is_deprecated), (g_base_info_get_annotation),
4989 (g_base_info_get_metadata), (g_function_info_get_symbol),
4990 (g_function_info_get_flags), (g_function_info_get_property),
4991 (g_function_info_get_vfunc), (signature_offset), (g_type_info_new),
4992 (g_callable_info_may_return_null),
4993 (g_callable_info_get_caller_owns), (g_callable_info_get_n_args),
4994 (g_callable_info_get_arg), (g_arg_info_get_direction),
4995 (g_arg_info_is_return_value), (g_arg_info_is_dipper),
4996 (g_arg_info_is_optional), (g_arg_info_may_be_null),
4997 (g_arg_info_get_ownership_transfer), (g_type_info_is_pointer),
4998 (g_type_info_get_tag), (g_type_info_get_param_type),
4999 (g_type_info_get_interface), (g_type_info_get_array_length),
5000 (g_type_info_is_zero_terminated),
5001 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
5002 (g_error_domain_info_get_quark), (g_error_domain_info_get_codes),
5003 (g_value_info_get_value), (g_field_info_get_flags),
5004 (g_field_info_get_size), (g_field_info_get_offset),
5005 (g_registered_type_info_get_type_name),
5006 (g_registered_type_info_get_type_init),
5007 (g_struct_info_get_n_fields), (g_struct_info_get_field),
5008 (g_struct_info_get_n_methods), (g_struct_info_get_method),
5009 (find_method), (g_struct_info_find_method),
5010 (g_enum_info_get_n_values), (g_enum_info_get_value),
5011 (g_object_info_get_parent), (g_object_info_get_type_name),
5012 (g_object_info_get_type_init), (g_object_info_get_n_interfaces),
5013 (g_object_info_get_interface), (g_object_info_get_n_fields),
5014 (g_object_info_get_field), (g_object_info_get_n_properties),
5015 (g_object_info_get_property), (g_object_info_get_n_methods),
5016 (g_object_info_get_method), (g_object_info_find_method),
5017 (g_object_info_get_n_signals), (g_object_info_get_signal),
5018 (g_object_info_get_n_vfuncs), (g_object_info_get_vfunc),
5019 (g_object_info_get_n_constants), (g_object_info_get_constant),
5020 (g_interface_info_get_n_prerequisites),
5021 (g_interface_info_get_prerequisite),
5022 (g_interface_info_get_n_properties),
5023 (g_interface_info_get_property), (g_interface_info_get_n_methods),
5024 (g_interface_info_get_method), (g_interface_info_find_method),
5025 (g_interface_info_get_n_signals), (g_interface_info_get_signal),
5026 (g_interface_info_get_n_vfuncs), (g_interface_info_get_vfunc),
5027 (g_interface_info_get_n_constants),
5028 (g_interface_info_get_constant), (g_property_info_get_flags),
5029 (g_signal_info_get_flags), (g_signal_info_get_class_closure),
5030 (g_signal_info_true_stops_emit), (g_vfunc_info_get_flags),
5031 (g_vfunc_info_get_offset), (g_vfunc_info_get_signal),
5032 (g_constant_info_get_value), (g_union_info_get_n_fields),
5033 (g_union_info_get_field), (g_union_info_get_n_methods),
5034 (g_union_info_get_method), (g_union_info_is_discriminated),
5035 (g_union_info_get_discriminator_offset),
5036 (g_union_info_get_discriminator):
5037 * src/ginvoke.c: (g_function_info_invoke):
5038 * src/girepository.c: (g_irepository_register),
5039 (g_irepository_unregister), (g_irepository_get_default),
5040 (count_interfaces), (g_irepository_get_n_infos), (find_interface),
5041 (g_irepository_get_info), (g_irepository_find_by_name),
5042 (g_irepository_get_shared_library),
5043 (g_irepository_build_search_path), (g_irepository_register_file),
5044 (g_irepository_error_quark):
5045 * src/girepository.h:
5046 * src/gmetadata.c: (g_metadata_get_dir_entry),
5047 (g_metadata_check_sanity), (validate_header),
5048 (validate_array_type_blob), (validate_iface_type_blob),
5049 (validate_param_type_blob), (validate_error_type_blob),
5050 (validate_type_blob), (validate_arg_blob),
5051 (validate_signature_blob), (validate_function_blob),
5052 (validate_callback_blob), (validate_constant_blob),
5053 (validate_value_blob), (validate_field_blob),
5054 (validate_property_blob), (validate_signal_blob),
5055 (validate_vfunc_blob), (validate_struct_blob),
5056 (validate_enum_blob), (validate_object_blob),
5057 (validate_interface_blob), (validate_errordomain_blob),
5058 (validate_union_blob), (validate_blob), (validate_directory),
5059 (validate_annotations), (g_metadata_validate), (_g_metadata_init),
5060 (g_metadata_new_from_memory), (g_metadata_new_from_const_memory),
5061 (g_metadata_new_from_mapped_file), (g_metadata_free),
5062 (g_metadata_set_module), (g_metadata_get_namespace):
5064 * tests/Makefile.am:
5065 * tests/invoke/Makefile.am:
5066 * tests/invoke/invoke-namespace-find.sh:
5067 * tests/invoke/invoke.c: (main):
5069 Add a namespace/shared library mapping. fixes #313268.
5071 2007-12-03 Johan Dahlin <johan@gnome.org>
5073 * src/gidlparser.c (parse_type_internal): Disable char/gchar and
5076 2007-11-30 Jürg Billeter <j@bitron.ch>
5082 * src/gen-introspect.c: (g_idl_node_cmp), (g_igenerator_new),
5083 (g_igenerator_write_inline), (g_igenerator_write),
5084 (g_igenerator_write_indent), (g_igenerator_write_unindent),
5085 (field_generate), (value_generate), (constant_generate),
5086 (property_generate), (function_generate), (vfunc_generate),
5087 (signal_generate), (interface_generate), (struct_generate),
5088 (union_generate), (boxed_generate), (enum_generate),
5089 (node_generate), (module_generate), (get_type_from_type_id),
5090 (str_replace), (g_igenerator_process_properties),
5091 (g_igenerator_process_signals), (g_igenerator_process_types),
5092 (get_type_from_ctype), (g_igenerator_process_function_symbol),
5093 (g_igenerator_process_unregistered_struct_typedef),
5094 (g_igenerator_process_struct_typedef),
5095 (g_igenerator_process_union_typedef),
5096 (g_igenerator_process_enum_typedef),
5097 (g_igenerator_process_function_typedef),
5098 (g_igenerator_process_constant), (g_igenerator_process_symbols),
5099 (g_igenerator_add_symbol), (g_igenerator_is_typedef),
5100 (g_igenerator_generate), (main), (csymbol_new),
5101 (csymbol_get_const_boolean), (ctype_new), (ctype_copy),
5102 (cbasic_type_new), (ctypedef_new), (cstruct_new), (cunion_new),
5103 (cenum_new), (cpointer_new), (carray_new), (cfunction_new),
5104 (eat_hspace), (eat_line), (read_identifier),
5105 (g_igenerator_parse_macros):
5106 * src/gen-introspect.h:
5108 Import gen-introspect to generate introspection information by
5111 2007-11-30 Jürg Billeter <j@bitron.ch>
5113 * src/gidlnode.c: (g_idl_node_new): support creating callback nodes
5115 2007-11-30 Jürg Billeter <j@bitron.ch>
5117 * src/gidlparser.c: (end_element_handler): Don't leave requires
5120 2007-11-29 Johan Dahlin <johan@gnome.org>
5122 * src/gidlparser.c (parse_type_internal): Add char,
5123 gchar and guchar to the builtin types.
5125 2007-11-26 Johan Dahlin <johan@gnome.org>
5127 * src/ginfo.c: (g_object_info_get_type_name),
5128 (g_object_info_get_type_init):
5129 * src/girepository.c: (g_irepository_is_registered):
5130 * src/girepository.h:
5132 Add g_object_info_get_type_name, g_object_info_get_type_init and
5133 g_irepository_is_registered.
5135 2006-08-14 Jürg Billeter <j@bitron.ch>
5137 * src/gidlparser.c: (end_element_handler): Don't leave
5138 namespace and implements states too early.
5141 2007-11-26 Johan Dahlin <johan@gnome.org>
5143 * src/gmetadata.c (validate_struct_blob):
5144 pass blob_type to validate_function_blob instead of
5145 hard-coding BLOB_TYPE_STRUCT.
5147 Patch by Torsten Schoenfeld, fixes #314190
5149 2006-10-03 Torsten Schoenfeld <tsch@cvs.gnome.org>
5151 * src/compiler.c, src/generate.c, src/gidlnode.c,
5152 src/gidlparser.c, src/ginfo.c, src/girepository.c,
5153 tests/invoke/invoke.c, test/invoke/testfns.c: Hush compiler
5154 warnings about return values, signedness mismatches, unused
5155 variables, and unhandles enum values in switch statements.
5157 * tests/invoke/Makefile.am: Don't install the invoke test program.
5158 Add -I ../../src to the cflags used for the test functions files.
5160 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
5162 * src/girepository.h: Export g_invoke_error_quark.
5164 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
5166 * src/ginvoke.c: Remove the fallback implementation of
5167 g_function_info_invoke since we now formally depend on libffi.
5169 2005-07-25 Matthias Clasen <mclasen@redhat.com>
5171 * src/Makefile, tests/Makefile, tests/invoke/Makefile:
5172 Remove these files from cvs, as they are now generated.
5174 * src/gmetadata.c (validate_iface_type_blob): Don't
5175 complain if blob->pointer is not set, since that
5176 happens for enum and flag types. (#308935, Gustavo
5179 * Commit an autoconf-conversion patch by
5180 Gustavo Carneiro (#308708)
5182 2005-05-24 Matthias Clasen <mclasen@redhat.com>
5184 * src/compiler.c (main): Use it here to validate
5185 the generated metadata.
5187 * src/gmetadata.[hc]: Add code to validate a
5190 * metadata-format.txt: Updates
5192 2005-05-22 Matthias Clasen <mclasen@redhat.com>
5194 * tests/*: Add struct offsets to field and vfunc
5197 * src/generate.c (write_vfunc_info): Write offset
5198 information for vfuncs.
5200 * src/gidlnode.c (g_idl_node_build_metadata): Write
5201 the struct offsets into the metadata.
5203 * src/gidlparser.c: Parse the offset attributes of
5204 field and vfunc elements.
5206 * src/gidlnode.h: Add offset members to field and
5209 2005-05-21 Matthias Clasen <mclasen@redhat.com>
5213 * gidl.dtd: Updates.
5215 * src/g-idl-offsets.pl: A perl script which reads a .gidl
5216 file, creates, compiles and runs a C file, and folds the
5217 resulting struct offsets back into the .gidl file.
5219 2005-05-20 Matthias Clasen <mclasen@redhat.com>
5221 * src/gidlparser.c (start_field): Make fields in objects
5224 * src/gidlmodule.c: Include string.h
5229 * metadata-format.txt: Cleanup basic types.
5230 * src/*: Adapt to the changes.
5231 * tests/*: Adapt to the changes.
5232 * examples/gdk-pixbuf.gidl: Adapt to the changes.
5234 * src/gidlnode.c (g_idl_node_get_size): Report the correct
5235 size for enum blobs.
5236 (g_idl_node_get_full_size): Report the correct size for
5239 * src/gidlmodule.c (g_idl_module_build_metadata): Add some
5240 error checking for blob sizes.
5242 2005-05-19 Matthias Clasen <mclasen@redhat.com>
5244 * src/gidlnode.c (g_idl_node_build_metadata): Correctly handle
5245 interface types for which is_pointer is FALSE, e.g. enums.
5247 * src/gidlnode.c (g_idl_node_get_full_size)
5248 * src/gidlparser.c (parse_type_internal):
5249 * src/generate.c (write_type_info): Support unspecialized
5250 lists, hashtables and errors. Also emit a '*' after these.
5254 2005-05-17 Matthias Clasen <mclasen@redhat.com>
5258 * metadata-format.txt: Cleanups by Maciej Katafiasz.
5260 2005-05-15 Matthias Clasen <mclasen@redhat.com>
5262 * src/*.c: Change the directory to be addressed by
5263 1-based indexes, and use an index of zero to mean
5266 2005-05-15 Matthias Clasen <mclasen@redhat.com>
5268 * tests/roundtrips.sh (SIMPLE_TESTS): Add union.test.
5270 * tests/union.test: Add a union test.
5272 * src/generate.c: Handle unions.
5274 * src/girepository.h:
5275 * src/ginfo.c: Add GIUnionInfo and functions to access it.
5277 * src/gidlnode.c: Handle GIdlNodeUnion nodes.
5279 * src/gidlparser.c (start_union): Parse <union> elements.
5281 * src/gidlnode.h: Add a GIdlNodeUnion.
5283 * gidl.dtd: Add a <union> element.
5285 * src/gmetadata.c (g_metadata_check_sanity): Check
5288 * src/gmetadata.h: Add union_blob_size to Header,
5291 * metadata-format.txt: Add a UnionBlob.
5293 2005-05-13 Matthias Clasen <mclasen@redhat.com>
5295 * tests/*: Update testcases.
5297 * src/generate.c (write_callable_info): Don't forget to
5298 write transfer and null-ok attributes for return types
5301 * src/girepository.h:
5302 * src/ginfo.c (g_callable_info_may_return_null):
5303 New function to find out if a function may return NULL.
5305 * src/compiler.c (format_output): Make the generated
5308 * README: Point to a recent libffi snapshot.
5310 * tests/invoke/*: Some invoke tests.
5312 * src/Makefile: Add ginvoke.c and the necessary
5315 * src/girepository.h (g_function_info_invoke): Add
5318 * src/ginvoke.c (g_function_info_invoke): Initial
5319 implementation of invoke functionality based on libffi.
5321 * src/gidlnode.c (g_idl_node_build_metadata): Pass the
5322 strings and types hash tables in the right order when
5324 (find_entry_node): Free the name parts.
5326 2005-05-12 Johan Dahlin <johan@gnome.org>
5328 * src/generate.c: Generate consistent end tags.
5332 2005-05-12 Matthias Clasen <mclasen@redhat.com>
5336 * src/gidlparser.c (start_function): Actually add
5337 methods to objects. (Steven Walter)
5339 * src/girepository.h:
5340 * src/ginfo.c: Rename Transfer and Direction to
5341 GITransfer and GIDirection. (Torsten Schoenfeld)
5343 * tests/*: Make tests work with the changes in name
5346 * src/gidlnode.c (find_entry_node): Parse qualified
5347 names and generate xref nodes for them if needed. Don't
5348 require all modules to be loaded any more.
5350 * src/gidlmodule.c (g_idl_module_build_metadata): Choke
5353 * src/ginfo.c (g_object_info_get_parent): Return NULL
5354 if blob->parent is 0. Still need to make sure index
5357 * src/generate.c: Generate qualified names when
5358 referring to non-local types. Emit transfer attribute
5361 * src/compiler.c (format_output): Put the function
5362 attributes where gcc accepts them.
5364 2005-05-11 Matthias Clasen <mclasen@redhat.com>
5366 * src/compiler.c (main): Add a --verbose cmdline option
5367 and only log messages if it is specified.
5370 * src/gidlnode.c (init_stats, dump_stats): Collect some
5371 statistics on string and type sharing.
5373 * src/gidlmodule.c (g_idl_module_build_metadata): Use
5374 g_message() instead of fprintf().
5376 * src/gidlnode.c (g_idl_node_free): Make this more robust.
5377 (g_idl_node_get_size): Implement for structs.
5378 (g_idl_node_get_full_size): Handle parent being NULL.
5379 (serialize_type): Handle lookup failures more gracefully.
5381 2005-05-10 Matthias Clasen <mclasen@redhat.com>
5383 * src/gidlnode.c (g_idl_node_get_full_size): Correct the
5384 size calculation for 2-parameter types and for objects.
5386 * src/compiler.c: Add a cmdline option for debug output
5387 and install a log handler to implement it.
5388 * src/gidlnode.c: Add some debug spew.
5392 * src/gidlmodule.c (g_idl_module_build_metadata): Don't
5393 forget to count the module name when calculating the
5394 required size for the metadata.
5397 * src/gidlparser.c: Fix compiler warnings.
5399 2005-05-09 Matthias Clasen <mclasen@redhat.com>
5401 * src/compiler.c (main): Free the option context.
5403 * gidl.dtd: Clean up handling of names. All elements
5404 have a "name", only the elements corresponding to
5405 actual callable functions (function, method, constructor),
5406 have an additional "symbol" attribute holding the
5407 dlsym()-able function name.
5409 * src/generate.c: Adapt to generate xml matching the
5413 * src/gidlnode.c: Adapt to parse the new dtd.
5415 * tests/*.test: Adjust to the new dtd.
5417 * metadata-format.txt:
5418 * src/gmetadata.h: Remove the short_name field
5420 * src/gmetadata.c: Shrink size of ValueBlob to 12.
5421 * src/girepository.h:
5422 * src/ginfo.c (g_value_info_get_short_name): Removed
5424 2005-05-09 Matthias Clasen <mclasen@redhat.com>
5426 * gidl.dtd: Allow constructors for boxed types,
5427 patch by Jonathan Blandford.
5430 2005-05-09 Matthias Clasen <mclasen@redhat.com>
5432 * --- Initial import ---