1 2008-10-17 Johan Bilien <jobi@via.ecp.fr>
3 * gir/glib-2.0.c: added annotations
5 2008-10-16 Johan Bilien <jobi@via.ecp.fr>
7 * giscanner/ast.py: Also assume direction=out for size_t*, ssize_t*
10 2008-10-16 Johan Bilien <jobi@via.ecp.fr>
12 Bug 556610 – giscanner/girparser.py drops parameter options
14 * tests/scanner/drawable-injected-1.0-expected.gir,
15 tests/scanner/DrawableAdditions.xml: added simple test for injection.
16 * giscanner/ast.py: allow Parameter to take options in the constructor
17 * giscanner/girparser.py: parse parameter options (transfer,
18 direction, allow-none)
20 2008-10-16 Colin Walters <walters@verbum.org>
22 Bug 556185 - segfault on g_callable_info_get_return_type
24 Initial patch from John Ehresman.
26 * tests/repository/*: Add a test using
27 g_callable_info_get_return_type. Instead of casting a
28 GITypeInfo directly to a GIRegisteredTypeInfo, we need
29 to call g_type_info_get_interface.
31 2008-10-16 Colin Walters <walters@verbum.org>
33 Bug 556579 - union and struct name misresolved
35 * giscanner/transformer.py: The calls to _resolve_type_name
36 for struct/union names was a legacy holdover from when type
37 resolution had multiple phases. Now it's actively harmful
38 since we might pull in an identical name from another
42 2008-10-16 Colin Walters <walters@verbum.org>
44 Bug 556432 - transfer annotations and defaults
46 * giscanner/transformer.py: Canonicalize type
47 after removing *, not before. This ensures that
48 guchar* is transformed to 'uint8'.
49 Add some comments here.
50 * giscanner/glibtransformer.py: Add _adjust_transfer
51 phase for tweaking GObject transfers.
54 2008-10-16 Tommi Komulainen <tommi.komulainen@iki.fi>
56 * configure.ac: enable bunch of gcc warning CFLAGS
58 2008-10-16 Tommi Komulainen <tommi.komulainen@iki.fi>
60 Bug 556543 – reduce compiler warnings
62 * girepository/ginfo.c:
63 * girepository/girepository.c (register_internal,
64 count_interfaces, find_interface, find_namespace_version,
65 parse_version, g_irepository_require):
66 * girepository/girmodule.c (g_ir_module_build_typelib):
67 * girepository/girnode.c (init_stats, dump_stats,
68 _g_irnode_init_stats, _g_irnode_dump_stats,
69 g_ir_node_can_have_member):
70 * girepository/girparser.c (firstpass_end_element_handler,
71 locate_gir, parse_basic, parse_type_internal, resolve_aliases,
72 start_alias, start_type, end_type_top, parse_include, cleanup,
74 * girepository/gtypelib.c (validate_function_blob, validate_enum_blob):
75 * giscanner/giscannermodule.c (directive_get_options,
77 * giscanner/scannerlexer.l (parse_gtkdoc):
78 * giscanner/scannerparser.y (ctype_free):
79 * giscanner/sourcescanner.c:
80 * giscanner/sourcescanner.h (gi_source_scanner_parse_macros):
81 * tests/types/gitesttypes.c:
82 * tools/compiler.c (main):
83 * tools/generate.c (write_repository): Remove unused variables
84 and code, add missing includes, declarations and case
87 2008-10-16 Tommi Komulainen <tommi.komulainen@iki.fi>
89 Bug 556541 – access union members through UnionBlob rather than
92 * girepository/ginfo.c (g_union_info_find_method): access union
93 members through UnionBlob rather than StructBlob
95 2008-10-15 Colin Walters <walters@verbum.org>
97 Bug 556331 - clean up includes handling
99 * tools/g-ir-scanner: Rework command line arguments; now we take
100 --add-include-path and --include separately.
101 * giscanner/girwriter.py: Separate name= and version= in include
103 * giscanner/ast.py: Add Include type.
104 * giscanner/transformer.py: Cleanups to register_include now that
105 we don't need to handle mixed filenames and relative arguments.
106 * girepository/girparser.c: Parse name and version separately;
107 this fixes a bug as a side effect where we weren't resolving
108 through aliases for basic types.
109 * girepository/girepository.c: Fix format string args.
110 * gir/Makefile.am: Update.
113 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
115 Bug 556434 – unhandled interface/object/... member types
117 * girepository/girnode.c (g_ir_node_check_unhandled_members,
118 g_ir_node_build_typelib): Check all
119 interface/object/boxed/struct/union members are processed and
120 abort if they are not. (Mostly callbacks in structs, but also
121 fields in interfaces.)
123 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
125 * a/girepository/girnode.c (g_ir_node_build_members,
126 g_ir_node_build_typelib): refactor common code for processing
127 members to a function
129 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
131 * gir/Makefile.am (check-local): check that typelib -> gir -> typelib
132 transformation is lossless (it's not)
134 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
136 * tests/Makefile.am: fix tests to compare xml to xml instead of
137 typelib to xml, and stop on error
139 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
141 * tools/generate.c (write_type_name, write_type_info,
142 write_type_info, write_object_info, write_object_info,
143 write_interface_info, write_error_domain_info): reduce code
146 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
148 Bug 556174 – parse types for lists etc.
150 * girepository/girparser.c (end_type_recurse):
152 * tools/generate.c (write_type_info, write_field_info,
153 write_callable_info, write_callable_info, write_constant_info,
154 write_property_info): use nested <type>s for lists and hashes
156 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
159 * tests/object.gir: remove trailing whitespace from inside
160 elements to match g-ir-generate output
162 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
164 * tools/generate.c (xml_printf): quote printf arguments so that
165 we don't generate invalid XML by writing unescaped double quotes
166 and such in attributes
168 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
170 * tools/generate.c (write_field_info, write_callable_info,
171 write_function_info, write_callback_info, write_struct_info,
172 write_constant_value, write_signal_info, write_vfunc_info,
173 write_object_info, write_interface_info, write_union_info,
174 write_repository): remove unused indent parameters, xmlwriter
175 keeps track of necessary indentation
177 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
179 * tools/generate.c (xml_element_new, xml_element_free,
180 xml_start_element, xml_end_element, xml_end_element_unchecked,
181 xml_open, xml_close): Keep track of generated XML tree and
182 handle indentation and closing tags properly.
183 (write_field_info, write_callable_info, write_function_info,
184 write_callback_info, write_struct_info, write_value_info,
185 write_constant_info, write_enum_info, write_signal_info,
186 write_vfunc_info, write_property_info, write_object_info,
187 write_interface_info, write_error_domain_info, write_union_info,
188 write_repository): Use xml_start_element and xml_end_element to
191 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
193 * tools/generate.c (xml_printf, xml_open, xml_close, xml_free):
194 (write_type_name, write_type_info, write_field_info,
195 write_callable_info, write_function_info, write_callback_info,
196 write_struct_info, write_value_info, write_constant_value,
197 write_constant_info, write_enum_info, write_signal_info,
198 write_vfunc_info, write_property_info, write_object_info,
199 write_interface_info, write_error_domain_info, write_union_info,
200 write_repository): wrap all FILE access to go through simple xmlwriter
202 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
204 Bug 556400 – Fails to build on OS X 10.4
206 * configure.ac: check for functions backtrace and backtrace_symbols
207 * girepository/girparser.c (backtrace_stderr): Comment out
208 implementation if the functions are not available.
209 * gcov.mak (clean-gcov, clean-gcno): always call 'find' with a
210 directory for better portability
212 2008-10-15 Johan Bilien <jobi@via.ecp.fr>
214 Bug 556433 – assume direction = out for int * parameters
216 * giscanner/ast.py: define a list of types for which, if passed as
217 reference, we assume a default direction of 'out'
218 * giscanner/transformer.py: if a type has type pointer to one of the
219 previously defined types, and no direction is set, assume out.
220 * tests/scanner/drawable.[ch]: added tests for guessed direction=out
222 2008-10-15 Johan Bilien <jobi@via.ecp.fr>
224 * tests/scanner/annotation.c: fixed a few copy-paste errors
226 2008-10-14 Johan Bilien <jobi@via.ecp.fr>
228 Bug 556323 – transfer-ownership is wrong for functions returning const
231 * giscanner/transformer.py: check for a const string as return value,
232 not just const char*. Suggested by Colin Walters
233 * tests/scanner/annotation-1.0-expected.gir: updated expected output
235 2008-10-14 Johan Bilien <jobi@via.ecp.fr>
237 * girepository/ginfo.c, girepository/girepository.h: add
238 g_union_info_find_method
240 2008-10-14 Colin Walters <walters@verbum.org>
242 * tests/repository/Makefile.am: Reenable repo test.
243 * tests/repository/gitestrepo.c: Prepend search
244 path for $(top_builddir)/gir dir so that we don't
245 require installation for "make check" to pass.
247 2008-10-13 Jürg Billeter <j@bitron.ch>
249 * giscanner/glibtransformer.py:
250 * tests/scanner/annotation-1.0-expected.gir:
251 * tests/scanner/drawable-1.0-expected.gir:
252 * tests/scanner/foo-1.0-expected.gir:
253 * tests/scanner/utility-1.0-expected.gir:
255 Support fields in GObject structs
257 2008-10-13 Jürg Billeter <j@bitron.ch>
259 * giscanner/ast.py: add signed integer and off_t to type_names
261 2008-10-12 Jürg Billeter <j@bitron.ch>
263 * giscanner/girparser.py: Parse bits attribute of fields
265 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
267 * tests/repository/Makefile.am: run 'gitestrepo' in 'make check'
268 * tests/repository/gitestrepo.c (main): instantiate
269 'GCancellable' to ensure the GType is registered before using
272 2008-10-12 Johan Bilien <jobi@via.ecp.fr>
274 * giscanner/girparser.py: actually add the parsed constant nodes
276 2008-10-12 Colin Walters <walters@verbum.org>
278 * girepository/girepository.c: Don't cast DirEntry to Blob,
279 actually look it up by offset.
281 2008-10-12 Johan Bilien <jobi@via.ecp.fr>
283 * giscanner/girparser.py: parse constant nodes in gir files
285 2008-10-12 Johan Bilien <jobi@via.ecp.fr>
287 * giscanner/transformer.py: prefix for constants have an underscore,
288 so remove them as if they were functions, not objects.
290 2008-10-12 Johan Bilien <jobi@via.ecp.fr>
292 * tests/scanner/foo-1.0-expected.gir: add constants to expected gir
295 2008-10-12 Colin Walters <walters@verbum.org>
297 Initial patch from Jani Monoses.
299 * girepository/gtypelib.c: Fix inverted test for success
302 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
304 * tools/generate.c (write_callable_info): use "transfer-ownership"
305 attribute for return values
307 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
309 * tools/generate.c (write_callable_info): move "transfer" and
310 "null-ok" attributes from <function> to <return-value> element
312 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
314 * girepository/girparser.c (start_return_value): handle
315 "transfer-ownership" attribute
317 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
319 * girepository/girparser.c (parse_param_transfer):
320 * tools/generate.c (write_callable_info): use "container" for
321 container/shallow ownership transfer (not "shallow")
323 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
325 * girepository/girparser.c (parse_param_transfer,
326 start_parameter): Refactor handling of transfer=none/shallow/full
329 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
331 Bug 556048 – Crash in g_irepository_find_by_gtype
333 * girepository/gtypelib.h (BLOB_IS_REGISTERED_TYPE): added
334 * girepository/girepository.c (find_interface): Fix
335 find_by_gtype case to get the type name from right offset
337 2008-10-12 Jürg Billeter <j@bitron.ch>
339 * giscanner/girparser.py: Fix parsing transfer-ownership attribute
342 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
344 * girepository/gtypelib.h (RegisteredTypeBlob): make
345 'unregistered' one bit wide as everywhere else
347 2008-10-12 Jürg Billeter <j@bitron.ch>
349 * giscanner/glibtransformer.py:
350 * tests/scanner/annotation-1.0-expected.gir:
351 * tests/scanner/drawable-1.0-expected.gir:
352 * tests/scanner/drawable.h:
353 * tests/scanner/foo-1.0-expected.gir:
354 * tests/scanner/utility-1.0-expected.gir:
356 Readd class records as workaround to not break Gtk typelib
358 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
360 * tests/types/Makefile.am: fix typo in gitesttypes namespace
362 2008-10-12 Jürg Billeter <j@bitron.ch>
364 * giscanner/glibtransformer.py: Don't generate <record> elements
366 * tests/scanner/*: Update test cases
368 2008-10-11 Colin Walters <walters@verbum.org>
370 Bug 552858: versioning
372 This is a big patch. You should probably remove your installation
375 * docs/typelib-format.txt: Add nsversion entry which holds
376 version of namespace.
377 * girepository/girepository.h: Add 'version' parameter to
378 g_irepository_require. This may be NULL. Normally
379 bindings should pass an explicit version though.
380 * girepository/girepository.c: Lots of infrastructure to
381 support versioning. Add some more documentation. Disallow
382 some usage of NULL namespaces.
383 * girepository/girmodule.c: Add version parameter.
384 * girepository/gtypelib.c: Update header size.
385 * giscanner/ast.py: Add version to Namespace.
386 * giscanner/girparser.py: Parse version attribute from
387 XML, pass to Namespace.
388 * giscanner/girwriter.py: Write out version parameter.
389 * giscanner/transformer.py: Clean up include registration.
390 * tests/*: Add version attribute.
391 * tests/invoke/invoke.c: Don't try looking up test before
392 it's loaded in repository.
393 * tools/generate.c: Output version parameter.
394 * gir/Makefile.am: Add 2.0 version to .gir files.
396 2008-10-11 Colin Walters <walters@verbum.org>
398 * giscanner/scannerlexer.l (parse_gtkdoc): Don't lose
399 if we have mismatched parens.
401 2008-10-11 Lucas Rocha <lucasr@gnome.org>
403 * giscanner/girparser.py (_parse_enumeration_bitfield): fix typo
404 on 'members' variable.
406 2008-10-11 Colin Walters <walters@verbum.org>
408 Bug 555947 - update annotations syntax
410 * giscanner/ast.py: Default to None for transfer. Remove
411 default transfers for container types; we require this to
413 * giscanner/girwriter.py: Transfer is now 'none', 'container',
414 'full' to match repository.
415 * giscanner/scannerlexer.l: Annotations now are parenthesized.
416 * giscanner/transformer.py: Update for new annotations syntax.
419 2008-10-11 Johan Bilien <jobi@litl.com>
421 * giscanner/scannerparser.y: ignore non-UTF-8 string constants
423 2008-10-11 Johan Bilien <jobi@litl.com>
425 Bug 552347: Parse #defines constants
427 * girepository/gtypelib.c: update the list of value_size
428 with recently defined type tags
429 * giscanner/scannerparser.y: brought back parsing of #defined, as
430 present in older version
431 * giscanner/giscannermodule.c: bind gi_source_scanner_append_filename
432 * giscanner/girwriter.py: write out constant tags in the gir
433 * giscanner/sourcescanner.py: add accessor for const_string
434 * giscanner/transformer.py, giscanner/glibtransformer.py: handle
437 2008-10-11 Tommi Komulainen <tommi.komulainen@iki.fi>
439 Bug 555946: Install a test module exercising all types, transfer
444 * tests/types/*: Add and install a test module that has functions
445 accepting and returning most of the basic types to enable bindings
446 implementors to more easily test their type conversion routines.
448 2008-10-11 Jürg Billeter <j@bitron.ch>
450 Bug 552374: Const strings should be identified in the gir.
452 * giscanner/transformer.py: support string memory management
453 * tests/scanner/foo.h: use char * and const char *
454 * tests/scanner/foo-expected.gir: test that
456 2008-10-11 Johan Dahlin <johan@gnome.org>
458 * giscanner/girparser.py:
459 Also parse enums which are not glib types.
461 2008-10-11 Lucas Rocha <lucasr@gnome.org>
463 Bug 552370: add one more test for unsigned as a type, not as
466 * giscanner/ast.py: add 'uint' type name for 'unsigned'.
467 * test/scanner/foo.h: add function which uses unsigned as a type.
468 * test/scanner/foo-expected.gir: test that.
470 2008-10-11 Andreas Rottmann <a.rottmann@gmx.at>
472 Bug 555712: Struct and union issues
474 * giscanner/scannerparser.y (struct_declarator): Use information
475 provided about the bit width of a field.
476 * giscanner/transformer.py (Transformer._create_member): Pass the
477 symbol's const_int member to the created field (it represents the
479 * giscanner/girwriter.py (GIRWriter._write_field): Output 'bits'
480 field attribute, if present.
481 * giscanner/ast.py (Field): Add 'bits' member, specifying the
482 width in bits of the field (only relevant for bitfields).
485 * giscanner/transformer.py (Transformer._create_typedef_struct)
486 (Transformer._create_typedef_union): Add calls to _create_struct()
487 and _create_union(), respectively. This causes the scanner to
488 generate output for fields of struct and union typedefs.
491 2008-10-11 Jürg Billeter <j@bitron.ch>
493 Bug 552370: unsigned not scanned properly
495 * giscanner/scannerparser.y: combine basic types such as unsigned
496 int and long long when scanning
497 * tests/scanner/foo-expected.gir:
498 * tests/scanner/foo.c: (foo_test_unsigned):
499 * tests/scanner/foo.h: test that
501 2008-10-11 Lucas Rocha <lucasr@gnome.org>
503 Bug 554854: The --typelib-xml and --inject options should reuse
504 giscanner parser/writer.
506 * giscanner/ast.py: add constructor list to Struct and Union.
507 Add new param in Return's contructor to define transfer.
508 * giscanner/girparser.py: several additions to the parser in order
509 to have parsing all nodes of the gir xml files.
510 * tools/g-ir-scanner (typelib_xml_strip, inject): use gir parser
511 and writer in --inject and --typelib-xml options.
512 * giscanner/xmlwriter.py: ignore empty attributes instead of
513 raising an error as this basically exposes a bug in GIRParser.
514 This should be reverted as soon as the parser is fixed.
516 2008-10-11 Lucas Rocha <lucasr@gnome.org>
518 Bug 552376: scanner generates wrong names for enum members when
519 there's no defined gtype.
521 * giscanner/utils.py (strip_common_prefix): Always strip common
522 prefix exactly up to the last "_", and not beyond.
523 * tests/scanner/foo.h (FooEnumNoType): add FOO_ENUM_NEUF. The point
524 here is that the first character after the last '_' should should be
525 the same as the character in the same position on the type name.
526 * tests/scanner/foo-expected.gir: test that
528 2008-10-10 Lucas Rocha <lucasr@gnome.org>
530 Bug 555293: append library_paths to LPATH env variable to work
531 around a bug in find_library when using ldconfig.
533 * tools/g-ir-scanner (main): ditto.
535 2008-10-09 Lucas Rocha <lucasr@gnome.org>
537 * girepository/girepository.c (register_internal): fix regression on
538 invoke test case by making sure we load the global module in the
539 typelib when dealing with inline typelibs.
540 * girepository/gtypelib.c: a couple of coding style fixes.
542 2008-10-06 Lucas Rocha <lucasr@gnome.org>
544 Bug 555294: Add support for multiple shared libraries per typelib.
546 * girepository/ginvoke.c (g_function_info_invoke),
547 girepository/ginfo.c(g_registered_type_info_get_g_type): use
548 g_typelib_symbol instead of g_module_symbol.
549 * girepository/girepository.h: remove g_typelib_set_module and add
551 * girepository/gtypelib.[ch] (find_some_symbol, _g_typelib_init,
552 g_typelib_new_from_memory, g_typelib_new_from_const_memory,
553 g_typelib_free, g_typelib_symbol): chnage GTypeLib to hold a list of
554 modules instead of just one. The symbol lookup is now abstracted
555 behind g_typelib_symbol which tries to find the passed symbol name in
557 * giscanner/girwriter.py, tools/g-ir-scanner: change scanner to read
558 and write shared_library attribute as a comma-separated list of libs.
560 2008-10-06 Colin Walters <walters@verbum.org>
562 * giscanner/transformer.py: Parse length= annotation as
563 a parameter name, not a raw int.
566 2008-10-03 Colin Walters <walters@verbum.org>
568 Bug 551744: Non-GObject types aren't aggregating ctors and methods
570 * girepository/gtypelib.c: Allow ctors/methods on struct,union,
572 * giscanner/glibtransformer.py: Ditto, and GLibBoxed is also a
576 2008-10-03 Colin Walters <walters@verbum.org>
578 Bug 554576: scan problem with ev_selection_render_selection()
580 * giscanner/transformer.py: Only do type resolution once we've
581 scanned all types. What could happen before is that we'd strip
582 the namespace from local type "EvSelection" => Selection, and
583 then later pull a "Selection" from some other namespace because
584 we hadn't yet seen the local EvSelection. This could come
585 down to hash table ordering and other things so not easy
588 2008-10-03 Lucas Rocha <lucasr@gnome.org>
590 * giscanner/girwriter.py (_parser_member): fix the last parameter of
591 GLibEnumMember constructor as it should be the enum member nick.
593 2008-10-02 Colin Walters <walters@verbum.org>
595 Bug 552961: remove this parameter for methods
597 * giscanner/glibtransformer.py: Delete this parameter; it is
599 * girepository/ginvoke.c: Insert this parameter for methods.
600 * girepository/gtypelib.c: Remove no longer needed verification of
601 method this parameter.
604 2008-09-30 Dan Winship <danw@gnome.org>
606 Bug 554490: g-ir-scanner gets confused by '\\'
608 * giscanner/scannerlexer.l (chartext, stringtext): fix use of
609 backslashes so it will correctly parse '\\' and "\\"
611 * tests/scanner/annotation.c: add a use of '\\' to make sure that
614 * giscanner/glibtransformer.py (GLibTransformer.count_type): typo
616 2008-10-02 Colin Walters <walters@verbum.org>
618 bug 552393: Note variadic functions
620 * giscanner/scannerparser.y: Parse ellipsis. Refactor grammar
621 to use parameter_list directly.
622 * giscanner/sourcescanner.h: Add ellipsis csymbol type.
623 * giscanner/ast.py: Add Varargs type.
624 * giscanner/transformer.py: Check for ellipsis symbol, transform
626 * girepository/girnode.h: Add varargs flag to in-memory nodes.
627 Parse varargs functions, but filter them out before we start
628 compiling the typelib.
630 2008-10-02 Colin Walters <walters@verbum.org>
632 Bug 554632: type tag for GType
634 * girepository/girepository.h, girepository/girepository.c:
635 Add type tag for GType - it's a special type we don't want
636 to resolve to just "long".
637 * docs/typelib-format.txt: Update.
638 * girepository/girparser.c: Parse it.
639 * giscanner/glibtransformer.py: Ensure we don't put GType in
641 * tools/generate.c: Remove hardcoded type list.
644 2008-09-30 Dan Winship <danw@gnome.org>
646 Bug 554521: scanner generates wrong names for enum members with
647 full type name prefix
649 * giscanner/utils.py (strip_common_prefix): Fix this to strip the
650 right amount when the entire "first" string is a prefix of
653 * tests/scanner/foo.h (FooEnumFullname):
654 * tests/scanner/foo-expected.gir: test that
656 2008-09-29 Colin Walters <walters@verbum.org>
658 Bug 552380: Array parameters should be marked in the gir
660 * giscanner/ast.py: Default char** to utf8[], and guchar* to
661 uint8[]. Add Array, List, and Map subclasses of Type;
662 these types can be generic. Return transfer defaults
663 to true if return value is string or container type.
664 Delete Sequence type.
665 * giscanner/scannerlexer.l: Syntax change for annotations;
666 use <> since it's more readable.
667 * giscanner/girwriter.py: Write out these changes.
668 * giscanner/girparser.py: Parse them.
669 * giscanner/transformer.py: Have a defined set of
670 both list and map types. When creating a type,
671 check if the ctype we've parsed is one of them,
672 if so create a container type subclass as appropriate.
673 * girepository/girparser.c: Parse in generic types.
676 2008-09-27 Colin Walters <walters@verbum.org>
678 * tools/g-ir-scanner: Add --inject option.
680 2008-09-25 Colin Walters <walters@verbum.org>
682 Remove non-repository types from GIR
684 * giscanner/ast.py: The canonical name is 'utf8', not
686 * giscanner/glibast.py: A few more glib type mappings.
687 * girepository/girparser.c: We only parse repository types.
688 * tests/*.gir: Update.
690 2008-09-23 Colin Walters <walters@verbum.org>
692 Bug 552566: Add time_t type
694 We need a type for time_t since it's special in C, and just
695 mapping it to long precluded bindings from handling it
698 2008-09-19 Colin Walters <walters@verbum.org>
700 Bug 552390: Handle capitialization like "DBus" more robustly
702 The to_underscores function was designed for use against prefixed
703 names; we need a separate function which will convert names like
704 DBusFoo into dbus_foo, not d_bus_foo.
706 2008-09-19 Colin Walters <walters@verbum.org>
708 Add check to make sure we're not hitting out unresolved types
710 Validate the "this" argument for methods
712 Remove heuristic matching of methods to classes based on prefix
714 It was a broken hack that dated from when we handled underscoring
715 and capitalization conventions less well.
717 2008-09-18 Colin Walters <walters@verbum.org>
719 Bug 522384: Use SHLIB_SUFFIX intead of G_MODULE_SUFFIX for Darwin
721 On Darwin, the suffix for installed shared libraries (.dylib) is
722 different from loadable modules (.so). We use a bit of magic shell
723 script from Behdad Esfahbod to figure out the right suffix.
725 2008-09-15 Johan Dahlin <johan@gnome.org>
727 * giscanner/sourcescanner.py (SourceType.type_qualifier): Add
728 a wrapper for type_qualifier as well.
730 2008-09-15 Colin Walters <walters@verbum.org>
732 http://bugzilla.gnome.org/show_bug.cgi?id=552065
734 * giscanner/ast.py: Add deprecation attributes.
735 * giscanner/girwriter.py: Write out deprecation data.
736 * girepository/girparser.c: Relax parsing; deprecated
737 attribute now includes freeform string.
738 * giscanner/scannerlexer.l: Parse Deprecated.
739 * giscanner/transformer.py: Look for deprecated attribute
741 * tests/scanner/*: Add a Deprecated test.
743 2008-09-14 Tor Lillqvist <tml@novell.com>
745 * tests/scanner/Makefile.am (%.typelib): Use $(EXEEXT).
747 2008-09-14 Colin Walters <walters@verbum.org>
749 * giscanner/glibtransformer.py: Ignore functions with
752 2008-09-12 Colin Walters <walters@verbum.org>
754 * giscanner/glibtransformer.py: Accept Gtk.Type as GType.
756 2008-09-12 Colin Walters <walters@verbum.org>
758 * giscanner/ast.py: Bind pid_t to INT for vte.
760 2008-09-12 Colin Walters <walters@verbum.org>
762 * giscanner/girparser.py: Parse c:type for boxed records/unions.
763 * giscanner/glibast.py: Avoid overwriting ctype.
764 * giscsanner/transformer.py: Try resolving types using the GType names.
766 2008-09-12 Colin Walters <walters@verbum.org>
768 * giscanner/minixpath.py: Code to run an "XPath"
769 assertion against an XML tree, taken from
770 gir-repository/gir/tests.py.
771 * giscanner/Makefile.am: Ship it.
772 * tools/g-ir-scanner: Add --xpath-assertions option.
773 * gir/GLib-assertions.txt: Add a few assertions.
774 * gir/Makefile.am: Run them.
776 2008-09-11 Colin Walters <walters@verbum.org>
778 http://bugzilla.gnome.org/show_bug.cgi?id=551737
780 * giscanner/transformer.py: Fix strip_namespace_func to only strip
781 prefix if it ends with _. Tweak callback stripping to determine
782 based on presence of _ whether we need to use strip_namespace_func
783 or strip_namespace_object.
785 2008-09-09 Owen Taylor <otaylor@redhat.com>
787 * docs/typelib-format.txt: Wether => Whether
789 2008-09-08 Colin Walters <walters@verbum.org>
791 * girepository/girparser.c: Default to "readable" for properties.
792 * giscanner/ast.py: Add readable, writable etc.
793 * giscanner/girwriter.py: Writ them.
794 * giscanner/glibtransformer.py: Inspect them.
797 2008-09-07 Colin Walters <walters@verbum.org>
799 * giscanner/cgobject.py: Add comment.
801 2008-09-07 Colin Walters <walters@verbum.org>
803 * giscanner/cgobject.py: Also call g_thread_init.
805 2008-09-07 Colin Walters <walters@verbum.org>
807 * giscanner/transformer.py: Fix regression by not
808 stripping prefix before stripping namespace for unions
811 2008-09-06 Colin Walters <walters@verbum.org>
813 * giscanner/transformer.py: If a namespace contains
814 multiple caps, try stripping both gnomekeyring_ and
817 2008-09-07 Johan Dahlin <johan@gnome.org>
819 Bug 551162 – giscanner does not recognize asm and __asm__
820 * giscanner/scannerlexer.l:
821 Patch by Jani Monoses.
823 2008-09-06 Colin Walters <walters@verbum.org>
825 * girepository/girnode.c: Allow gtype_name
826 and gtype_init in struct and union.
827 * girepository/girparser.c: Parse glib:
828 boxed bits for both structure and union.
829 * girepository/gtypelib.c: Don't barf
830 if structure is boxed.
831 * giscanner/girparser.py: Parse new XML
833 * giscanner/girwriter.py: Write out new
835 * giscanner/glibast.py: Define new classes
836 which are both Boxed and Struct/Union, as
837 well as an "Other" for everything else.
838 * giscanner/glibtransformer.py: Handle
839 boxed types specially; we try to merge
840 them with a struct/union if one exists,
841 otherwise fall back to generic boxed.
843 * tools/generate.c: Write out new format.
845 2008-09-06 Johan Dahlin <johan@gnome.org>
847 * giscanner/grealpath.h: Include stdlib.h
849 * docs/g-ir-generate.1: Remove leading %
851 2008-09-01 Colin Walters <walters@verbum.org>
853 * girepository/girparser.c: Look at c:type to determine
854 whether or not an item is a pointer.
856 2008-09-01 Johan Dahlin <johan@gnome.org>
858 * tests/scanner/Makefile.am:
859 Set PYTHONPATH so the scanner can run
860 even if you didn't install anything.
862 2008-09-01 Johan Dahlin <johan@gnome.org>
865 Post-release version bump
868 2008-09-01 Johan Dahlin <johan@gnome.org>
872 2008-08-31 Colin Walters <walters@verbum.org>
874 * giscanner/glibtransformer.py: Quiet info
877 2008-08-31 Johan Dahlin <johan@gnome.org>
880 Bump version to 0.5.0
882 2008-08-31 Colin Walters <walters@verbum.org>
884 * giscanner/glibtransformer.py: Follow aliases to ensure
885 we don't get a constructor returning a basic type.
886 * giscanner/transformer.py: Add function to follow aliases.
889 2008-08-31 Johan Dahlin <johan@gnome.org>
891 * giscanner/scannerlexer.l:
892 * giscanner/scannerparser.y:
893 * giscanner/sourcescanner.h:
894 * giscanner/sourcescanner.py:
895 Parse GCC extensions in the parser instead of just undeffing them
896 in the pre-processor.
898 2008-08-31 Johan Dahlin <johan@gnome.org>
900 * giscanner/glibtransformer.py:
901 Clean up a huge if. Do not add methods or constructors
903 * giscanner/utils.py:
904 second might be longer than first, check that.
906 2008-08-31 Johan Dahlin <johan@gnome.org>
911 2008-08-31 Colin Walters <walters@verbum.org>
913 * girepository/girparser.c: Don't lose if we
916 2008-08-31 Colin Walters <walters@verbum.org>
918 * giscanner/glibtransformer.py: Look for libtool
919 library in current directory
920 * tests/scanner - Update.
922 2008-08-30 Colin Walters <walters@verbum.org>
924 * docs/typelib-format.txt: Add a guint32
926 * gir/Makefile.am: Dep on Makefile
927 * girepository/ginfo.c:
928 * girepository/girepository.c: Clean up
929 default typelib handling; remove global
930 default_typelib variable. Ensure we handle
931 NULL repository in more places.
932 Support dependency resolution.
933 Support lazy loading.
934 * girepository/girepository.h: Remove
935 g_irepository_unregister; we don't support
936 unloading typelibs since really they're
937 process-global. Update for lazy loading
939 * girepository/girmodule.c: Use g_new0.
940 Add dependencies to GirModule.
941 * girepository/girparser.c: Parse dependencies.
942 * girepository/gtypelib.c: Add 4 bytes for
944 * tests/Makefile.am: Kill off gobject.gir,
945 it conflicts with the real one.
946 * tests/object.gir: Dep on GObject.
947 * tools/generate.c: Take --includedir
948 argument to say which directories to search
949 for typelibs. Print out dependencies.
951 2008-08-30 Colin Walters <walters@verbum.org>
953 * giscanner/glibtransformer.py: Reduce warning noise.
955 2008-08-29 Colin Walters <walters@verbum.org>
957 * girepository/ginfo.c: Add some assertions regarding
958 refcounts, just to be sure.
959 * giscanner/glibtransformer.py: Blacklist a few more
962 2008-08-29 Colin Walters <walters@verbum.org>
964 * giscanner/glibtransformer.py: Blacklist a few
965 functions that use GError oddly
967 2008-08-29 Colin Walters <walters@verbum.org>
969 * girepository/gtypelib.c: Don't crash if no
972 2008-08-29 Colin Walters <walters@verbum.org>
974 * girepository/girparser.c: Handle chains of aliases
975 across modules by ensuring we fully qualify aliases
978 2008-08-29 Colin Walters <walters@verbum.org>
980 * girepository/girparser.c: Don't search aliases
983 2008-08-29 Colin Walters <walters@verbum.org>
985 * girepository/girparser.c: Rewrite type parsing
986 to handle both GLib parsing case as well as correctly
987 handling GLib.List and friends. Don't try to treat
988 e.g. ListStore as a List.
990 2008-08-29 Colin Walters <walters@verbum.org>
992 * girepository/gtypelib.c: Add more context
995 2008-08-29 Colin Walters <walters@verbum.org>
997 * giscanner/glibtransformer.py: Add some informative
998 logging messages in corner cases. Be sure we use
999 the most recent node set instead of a cache
1000 when generating result set.
1001 * tests/: Remove duplicated bits in expected girs
1002 * girepository/girparser.c: Accept both List (for
1003 compiling GLib) and GLib.List (what the scanner
1006 * tools/generate.c: Generate canonical form.
1008 2008-08-29 Johan Dahlin <johan@gnome.org>
1010 * giscanner/config.py.in:
1011 Use datarootdir instead of datadir to avoid
1012 an autoconf warning.
1014 2008-08-29 Johan Dahlin <johan@gnome.org>
1018 * examples/gdk-pixbuf.gidl:
1020 Update and remove old cruft.
1022 2008-08-29 Johan Dahlin <johan@gnome.org>
1025 * docs/g-ir-compiler.1:
1026 * docs/g-ir-generate.1:
1027 * docs/g-ir-scanner.1:
1028 Add man pages for the generator and compiler.
1030 2008-08-29 Johan Dahlin <johan@gnome.org>
1032 * docs/g-ir-scanner.1: Document
1034 * giscanner/Makefile.am:
1035 * giscanner/gidlparser.py:
1036 * giscanner/gidlwriter.py:
1037 * tools/g-ir-scanner:
1038 Remove gidl support.
1040 2008-08-28 Colin Walters <walters@verbum.org>
1042 * tests/scanner/Makefile.am: Pass the right
1043 --includedir args. Add a Makefile dep.
1044 * tools/compiler.c: Pass includedirs down.
1045 * girepository/girparser.c: Actually put
1046 includedirs in context, pass down. Fix
1049 2008-08-28 Colin Walters <walters@verbum.org>
1051 * gir/Makefile.am: Use --includedir
1052 * girepository/girparser.c: Recursively parse
1053 includes to pull in aliases and expand them.
1054 We need this to avoid putting unknown names in
1056 * tools/compiler.c: Add --includedir option.
1057 * giscanner/ast.py: Map size/ssize to types
1060 2008-08-28 Tor Lillqvist <tml@novell.com>
1062 Make check now runs successfully on Windows.
1064 * tools/compiler.c (write_out_typelib): Use binary mode for output
1067 * girepository/girnode.c: Don't print NULL strings.
1069 * tests/invoke/Makefile.am
1070 * tests/scanner/Makefile.am: Use -no-undefined on Windows to
1071 convince libtool to build shared libraries.
1073 * tests/invoke/invoke.c: Don't needlessly include <dlfcn.h>. Use
1074 g_assert() instead of printing out expected errors.
1076 2008-08-28 Tor Lillqvist <tml@novell.com>
1078 * girepository/gtypelib.h: Change type of bitfield fields from
1079 guint to the most suitable smaller type. This makes the struct
1080 sizes match the ones on Linux that the sanity check expects when
1081 using gcc -mms-bitfields on Windows.
1083 2008-08-28 Johan Dahlin <johan@gnome.org>
1088 * giscanner/Makefile.am:
1089 * tests/Makefile.am:
1090 * tests/scanner/Makefile.am:
1091 Make distcheck pass.
1093 2008-08-27 Johan Dahlin <johan@gnome.org>
1095 * giscanner/Makefile.am:
1096 Only send in -no-undefined on Win32 as it breaks on MacOS X.
1098 2008-08-27 Tor Lillqvist <tml@novell.com>
1100 Make g-ir-scanner work on Windows. Still problems with the typelib
1101 code. Changes okayed by jdahlin.
1103 * configure.ac: Check for Windows, set Automake conditional
1104 OS_WIN32. Change backslashes to forward slashes in pyexecdir to
1105 avoid shell quoting issues
1107 * girepository/Makefile.am: Use -no-undefined so that libtool
1108 agrees to build a shared library on Windows.
1110 * girepository/girparser.c (backtrace_stderr): No backtrace() on
1111 Windows. Empty implementation on Windows so far.
1113 * girepository/gtypelib.c (g_typelib_check_sanity): Give more
1114 informative error message for the assertion failures. Tell also
1115 what the expected size of the struct is. Check all sizes first and
1116 fail afterwards if at least one size was different from expected.
1118 * tools/Makefile.am: Reorder libraries into proper logical
1121 * tools/generate.c: Don't include <dlfcn.h>, not used.
1123 * giscanner/Makefile.am: On Windows, link with the Python library,
1124 and install the module DLL as _giscanner.pyd. Remove the
1125 unnecessary import library and libtool library that libtool has
1128 * giscanner/scannerlexer.l: Recognize the gcc __attribute__ syntax
1129 and just skip it. Recognize also two "l" suffixes for long long
1130 constants. Recognize also __inline__.
1132 * giscanner/grealpath.h (g_realpath): Implement on Windows, using
1133 GetFullPathName(). As such, GetFullPathName() does more than the
1134 UNIX realpath(). It also changes relative paths into absolute
1135 paths. But for our purposes that shouldn't matter.
1137 * giscanner/giscannermodule.c (pygi_source_scanner_parse_file): On
1138 Windows the file descriptor passed to us is from Python. Python
1139 Python2.5 uses the msvcr71.dll C library, while mingw-built code
1140 uses msvcrt.dll. On Windows, file descriptors are specific to
1141 which C library is used. So we must find out what underlying OS
1142 handle corresponds to the file descriptor Python passes us, and
1143 then make that into a file descriptor valid for the C library this
1146 * giscanner/sourcescanner.py (_parse): Don't need to bypass
1147 __attribute__ as the lexer now handles it. The definition as empty
1148 was ineffective for mingw anyway, as mingw's _mingw.h undefines
1149 __attribute__. Close the temp file before unlinking it.
1151 * giscanner/cgobject.py: Use correct library name for the gobject
1154 * gir/Makefile.am: Must pass the full basename of the DLLs on
1155 Windows to g-ir-scanner. It's a bit ugly that we have to "know"
1156 that the names of the GLib DLLs are like libglib-2.0-0.dll, but in
1157 reality they won't change, until there is a GLib 3, and then also
1158 the Unix code here needs changing.
1160 Must pass CPPFLAGS to g-ir-scanner when building GLib.gir so that
1163 2008-08-26 Colin Walters <walters@verbum.org>
1165 * girepository/girepository.c: Search
1166 $DATADIR/girepository instead of
1167 $DATADIR/gitypelibs; this naming makes
1168 it clearer that e.g. jgir can install
1170 * gir/Makefile.am: Install there.
1172 2008-08-26 Colin Walters <walters@verbum.org>
1174 * girepository/gtypelib.c (_g_typelib_init): Also
1175 use G_MODULE_SUFFIX instead of hardcoding .so.
1177 2008-08-26 Colin Walters <walters@verbum.org>
1179 * girepository/gtypelib.c (_g_typelib_init): Free
1180 string in the right place.
1182 2008-08-26 Colin Walters <walters@verbum.org>
1184 * girepository/gtypelib.c (_g_typelib_init): Handle
1185 both .la and .so names; this works better in the
1186 uninstalled library case.
1188 2008-08-26 Johan Dahlin <johan@gnome.org>
1191 * giscanner/Makefile.am:
1192 * giscanner/cgobject.py:
1193 * giscanner/config.py.in:
1194 * giscanner/sourcescanner.py:
1195 Avoid undeffing __GNUC__, instead define
1196 __attribute__ & friends. Remove glibconfig.h hack.
1197 This makes gobject-introspection work better on
1198 MacOS X, Thanks to Richard Hult for kind help.
1200 2008-08-25 Colin Walters <walters@verbum.org>
1202 * giscanner/glibtransformer.py: Always print
1205 2008-08-25 Colin Walters <walters@verbum.org>
1207 * giscanner/glibtransformer.py: Skip over
1208 interfaces we don't know.
1210 2008-08-25 Colin Walters <walters@verbum.org>
1212 * girepository/girparser.c: Parse new implements
1213 syntax, drop gapi one.
1214 * tests/object.gir: Update.
1215 * tools/generate.c: Generate new syntax.
1217 2008-08-25 Colin Walters <walters@verbum.org>
1219 * giscanner/ast.py: Add interfaces property
1221 * giscanner/girwriter.py: Write out implemented
1223 * giscanner/glibtransformer.py: Introspect
1224 implemented interfaces.
1225 * tests/scanner/*: Make FooObject implement
1228 2008-08-25 Colin Walters <walters@verbum.org>
1230 * giscanner/glibtransformer.py: More correctly pair
1231 methods; if we have a symbol that starts with
1232 e.g. hippo_canvas look for a matching HippoCanvas
1233 class before accepting e.g. HippoCanvasImage.
1235 2008-08-24 Colin Walters <walters@verbum.org>
1237 * tools/g-ir-scanner: Filter out unknown options from
1240 2008-08-24 Colin Walters <walters@verbum.org>
1242 * giscanner/glibtransformer.py: Fail with better
1243 error if we can't find library.
1245 2008-08-24 Colin Walters <walters@verbum.org>
1247 * tools/g-ir-scanner: Use subprocess instead of
1248 commands, works on Windows and avoids the evil
1251 2008-08-24 Colin Walters <walters@verbum.org>
1253 * giscanner/glibtransformer.py: Skip over
1254 g_object_get_type from GLib trunk.
1256 2008-08-24 Colin Walters <walters@verbum.org>
1258 * girepository/girepository.c (g_irepository_require):
1259 Don't open shared library here; we already do it
1262 2008-08-24 Colin Walters <walters@verbum.org>
1264 * girepository/gtypelib.c: Add context stack so
1265 when we get an error we can print out nicely
1268 2008-08-24 Johan Dahlin <johan@gnome.org>
1270 * girepository/girparser.c (start_glib_boxed), (start_function),
1271 (start_field), (start_alias):
1272 Refactor a couple of parsing functions to be simpler to follow.
1275 2008-08-24 Johan Dahlin <johan@gnome.org>
1277 * girepository/girparser.c (start_function):
1278 Remove left-over code, checking type of function.
1280 2008-08-23 Colin Walters <walters@verbum.org>
1282 * giscanner/config.py: Define DATADIR.
1283 * giscanner/transformer.py: Look in DATADIR.
1285 2008-08-23 Colin Walters <walters@verbum.org>
1287 * girepository/gtypelib.c: Check constructor
1289 * girepository/girnode.c: Small tweaks.
1290 * girepository/ginfo.c: Calculate signature offsets
1292 * girepository/girparser.c: Remove duplicate
1294 * giscanner/glibtransformer.py: Avoid marking
1295 functions which return a basic type as
1298 2008-08-23 Colin Walters <walters@verbum.org>
1300 * girepository/girparser.c: Ignore <include>.
1301 * giscanner/girparser.py: Parse them.
1302 * giscanner/girwriter.py: Generate them.
1303 * giscanner/transformer.py: Process <include>
1304 recursively. Don't require full path for
1305 includes, look in {$XDG_DATA_DIRS}/gir.
1306 * tools/g-ir-scanner: Pass through includes.
1307 * Makefile.am: Remove extra --include
1309 * *-expected.gir: Add expected includes.
1311 2008-08-23 Johan Dahlin <johan@gnome.org>
1313 * tests/scanner/Makefile.am:
1314 * tests/scanner/annotation-expected.gir:
1315 * tests/scanner/drawable-expected.gir:
1316 Avoid duplication in the Makefile, regenerate with new
1317 namespaces (same as the filename)
1319 2008-08-22 Colin Walters <walters@verbum.org>
1321 * girepository/girnode.c: Don't hardcode integers,
1324 2008-08-22 Johan Dahlin <johan@gnome.org>
1326 * giscanner/sourcescanner.py:
1327 Check for ../gobject-introspection-1.0.pc.in to determine
1328 if we run installed or uninstalled.
1330 2008-08-22 Johan Dahlin <johan@gnome.org>
1333 * giscanner/sourcescanner.py:
1334 Send in undefs/defines via writing it directly to stdin
1335 of cpp instead of via arguments.
1337 2008-08-22 Colin Walters <walters@verbum.org>
1339 * tools/generate.c, tools/compiler.c: Default
1341 * all Makefile.am: Update.
1343 2008-08-22 Colin Walters <walters@verbum.org>
1345 * girepository/girparser.c: Pass through
1346 recursive types. Avoid overwriting errors.
1347 * giscanner/xmlwriter.py: Always write the
1349 * tests/*.gir: Adjust.
1350 * tests/scanner/Makefile.am: Build typelibs,
1351 and generate XML from those. Once we
1352 have a good diff mechanism...
1353 * tests/scanner/*-expected.gir: Add XML
1355 * tools/g-ir-scanner: Accept --typelib-xml
1357 * tools/generate.c: Better defaults for transfer.
1359 2008-08-22 Johan Dahlin <johan@gnome.org>
1363 * giscanner/Makefile.am:
1364 * giscanner/config.py.in:
1365 * giscanner/sourcescanner.py:
1366 Use the generated glibconfig.h for all scanner invokations.
1367 Rename it to glibconfig-scanner.h and install it.
1368 Add a config.py which so far contains the include dir.
1370 2008-08-22 Johan Dahlin <johan@gnome.org>
1373 Replace glibconfig.h with our own, do some replacement
1374 for CPP/C features we do not support
1376 2008-08-22 Colin Walters <walters@verbum.org>
1378 * tools/generate.c (write_callable_info): Fix unref
1381 2008-08-22 Colin Walters <walters@verbum.org>
1383 * gobject-introspection-1.0.pc.in: Add g-ir-generate.
1384 * tests/Makefile.am: Support $(DEBUG)
1385 * tools/generate.c: Do immediate close tags if no
1388 2008-08-21 Colin Walters <walters@verbum.org>
1390 * tests/scanner/drawable-expected.gir,
1391 * tests/scanner/drawable.c,
1392 * tests/scanner/drawable.h:
1395 2008-08-21 Colin Walters <walters@verbum.org>
1397 * giscanner/glibtransformer.py: Compute prefix
1398 by searching through the symbol for bits
1399 rather than going directly from ctype; this fixes
1402 2008-08-21 Colin Walters <walters@verbum.org>
1404 * giscanner/glibtransformer.py: Also try squashing
1405 underscores from namespace, fixes webkit_web_view_new.
1407 2008-08-21 Colin Walters <walters@verbum.org>
1409 * giscanner/glibtransformer.py: More ctor work,
1410 avoid having gtk_window_group_new end up under
1413 2008-08-21 Colin Walters <walters@verbum.org>
1415 * giscanner/glibtransformer.py: Much simpler approach
1416 of mapping uscored names to classes.
1417 * giscanner/utils.py: Remove unnecessary function.
1419 2008-08-21 Johan Dahlin <johan@gnome.org>
1421 * girepository/girepository.c (g_irepository_require):
1422 Plug memory leak and avoid using freed memory.
1423 Resolve the whole module path, here as well.
1425 2008-08-21 Colin Walters <walters@verbum.org>
1427 * giscanner/glibtransformer.py: Look up all permutations
1428 of class names when scanning methods/ctors based on
1429 the prefix instead of using the return value. This
1430 associates gtk_window_new with the right class.
1432 2008-08-21 Colin Walters <walters@verbum.org>
1434 * girepository/girmodule.c (g_ir_module_build_typelib):
1435 Revert change to increment header_size; we do that in
1438 2008-08-21 Colin Walters <walters@verbum.org>
1440 * girepository/girnode.c (write_string): Tweak to
1441 use UINT instead of INT. Not likely to matter.
1442 * girepository/girmodule.c (g_ir_module_build_typelib):
1443 Add to header_offset as well for header strings
1444 to match what write_string does.
1445 * girepository/gtypelib.c: Replace is_name with
1446 validate_name, which more strongly validates and
1447 handles errors in a better way. Update all callers.
1448 * giscanner/glibtransformer.py: Handle constructors
1451 2008-08-21 Johan Dahlin <johan@gnome.org>
1453 * gir/Makefile.am (typelibs_DATA): Build and
1454 install the Gio.typelib too
1456 * girepository/gtypelib.c (_g_typelib_init):
1457 Use g_module_build_path to resolve the shlib name
1459 2008-08-21 Colin Walters <walters@verbum.org>
1461 * gir/Makefile.am: CLEANFILES typelibs too.
1463 2008-08-21 Johan Dahlin <johan@gnome.org>
1465 * giscanner/glibtransformer.py:
1466 Do not send .la files through find_library.
1468 2008-08-21 Colin Walters <walters@verbum.org>
1470 * girepository/girparser.c (g_irepository_require):
1471 Fix one small leak in error case.
1473 2008-08-21 Johan Dahlin <johan@gnome.org>
1476 Parse glibconfig.h as well and install the compiled
1479 2008-08-21 Johan Dahlin <johan@gnome.org>
1482 * giscanner/glibtransformer.py:
1483 * tools/g-ir-scanner:
1484 Do not hard-core library names in the Makefile, reuse
1485 ctypes find_library instead.
1487 2008-08-21 Johan Dahlin <johan@gnome.org>
1489 * girepository/girparser.c (resolve_aliases):
1490 Remove compilation warnings
1492 2008-08-21 Johan Dahlin <johan@gnome.org>
1494 * girepository/girepository.c (g_irepository_require):
1495 Rewrap and fix double free bug by leaking a bit.
1497 2008-08-20 Colin Walters <walters@verbum.org>
1499 * girepository/girepository.c: Add new function
1500 g_irepository_get_typelib_path which tells
1501 us from where we loaded a namespace.
1503 2008-08-20 Colin Walters <walters@verbum.org>
1505 * tests/scanner/*-expected.gir: Adjust for
1506 added shared-library.
1507 * giscanner/giwriter.py: Make pylint happy.
1509 2008-08-20 Colin Walters <walters@verbum.org>
1511 * girepository/girmodule.c (g_ir_module_build_typelib):
1512 Calculate size correctly, avoid use-after-free.
1514 2008-08-20 Colin Walters <walters@verbum.org>
1516 * girepository/girepository.c: Remove
1517 g_irepository_register_file in favor of
1518 g_irepository_require. There are two
1519 possible deployment scenarios for typelibs:
1520 First, separate in $DATADIR/gitypelibs/. Second,
1521 they may be embedded in shlibs. However since
1522 the first is now the normal case, the API is
1523 optimized around it.
1525 Refactor internals to look up typelibs for
1526 namespaces just-in-time, but we expect
1527 consumers to call g_irepository_require.
1529 Also, add some docs. No one has died from that
1531 * gir/Makefile.am: Need --library for glib.
1532 * giscanner/girwriter.py: Write out shared-library.
1533 * tools/g-ir-writer: Take the first --library
1534 argument as the target of shared-library. In
1535 the future we should make this nicer with pkg-config
1538 2008-08-20 Colin Walters <walters@verbum.org>
1540 * girepository/girparser.py: And parse them.
1542 2008-08-20 Johan Dahlin <johan@gnome.org>
1544 * giscanner/glibast.py: Add gshort/gushort types
1546 2008-08-20 Colin Walters <walters@verbum.org>
1548 * gir/Makefile.am: Rename .gir files using GI namespace.
1549 * girepository/girepository.c: Use XDG_DATA_DIRS for
1550 looking up typelibs. Also typelibs are now suffixed
1552 * tests/invoke/Makefile.am: Only use metadata.
1553 * girepository/Makefile.am: Remove unnecessary include.
1554 * tests/scanner/Makefile.am: Update using GI namespaces
1555 for scanner includes.
1557 2008-08-20 Colin Walters <walters@verbum.org>
1559 * girepository/transformer.py: Suppress aliases whose
1561 * girepository/ast.py: Define some more aliases.
1563 2008-08-20 Colin Walters <walters@verbum.org>
1565 * girepository/girparser.c: Avoid alias infloops.
1567 2008-08-20 Colin Walters <walters@verbum.org>
1569 * tests/scanner/foo-expected.gir: Fix expected list type.
1571 2008-08-20 Johan Dahlin <johan@gnome.org>
1573 * giscanner/glibtransformer.py (GLibTransformer._resolve_type_name):
1574 Add a workaround for #548689.
1575 We can now compile gtk!
1577 2008-08-20 Colin Walters <walters@verbum.org>
1579 * giscanner/glibtransformer.py: Try to look up
1580 aliases using the c:type too.
1582 2008-08-20 Colin Walters <walters@verbum.org>
1584 * girepository/girparser.c: Parse union fields.
1586 2008-08-20 Johan Dahlin <johan@gnome.org>
1588 * giscanner/ast.py: Make time_t an alias for long
1590 * gir/gio-2.0-good.gir:
1591 * gir/glib-2.0-good.gir:
1592 * gir/gobject-2.0-good.gir:
1594 * giscanner/glibtransformer.py:
1595 Do not delete Class structures, we need them in gdk/gtk.
1596 * tests/scanner/drawable-expected.gir:
1597 * tests/scanner/foo-expected.gir:
1598 * tests/scanner/utility-expected.gir:
1601 2008-08-20 Johan Dahlin <johan@gnome.org>
1603 * tests/scanner/Makefile.am:
1604 * tests/scanner/annotation-expected.gir:
1605 * tests/scanner/annotation.c (annotation_object_class_init),
1606 (annotation_object_init), (annotation_object_method),
1607 (annotation_object_in), (annotation_object_out),
1608 (annotation_object_inout), (annotation_object_inout2),
1609 (annotation_object_inout3), (annotation_object_calleeowns),
1610 (annotation_object_calleesowns), (annotation_object_get_strings),
1611 (annotation_object_with_voidp), (annotation_object_get_objects),
1612 (annotation_object_create_object), (annotation_object_allow_none):
1613 * tests/scanner/annotation.h:
1614 * tests/scanner/foo-expected.gir:
1615 * tests/scanner/foo.c:
1616 * tests/scanner/foo.h:
1617 Split out annotation tests out of foo
1619 2008-08-20 Johan Dahlin <johan@gnome.org>
1621 * tests/scanner/Foo-expected.gir:
1622 * tests/scanner/Makefile.am:
1623 * tests/scanner/foo-expected.gir:
1624 * tests/scanner/foo-object.h:
1625 * tests/scanner/foo.c:
1626 Foo->foo, foo-object.h -> foo.h
1628 2008-08-20 Johan Dahlin <johan@gnome.org>
1630 * tests/scanner/Foo-expected.gir:
1631 * tests/scanner/Makefile.am:
1632 * tests/scanner/drawable-expected.gir:
1633 * tests/scanner/drawable.c (test_drawable_class_init),
1634 (test_drawable_init):
1635 * tests/scanner/drawable.h:
1636 * tests/scanner/foo-object.h:
1637 * tests/scanner/foo.c (foo_boxed_method):
1638 Move the drawable parts out of Foo to its own test.
1640 2008-08-20 Johan Dahlin <johan@gnome.org>
1642 * tests/scanner/Foo-expected.gir:
1643 * tests/scanner/foo-object.h:
1644 * tests/scanner/foo.c (foo_drawable_class_init),
1645 (foo_drawable_init):
1646 Add a based on GdkDrawable which generates
1649 2008-08-19 Colin Walters <walters@verbum.org>
1651 * giscanner/transformer.py: Don't try
1652 to strip prefix before namespace.
1654 2008-08-19 Johan Dahlin <johan@gnome.org>
1656 * giscanner/transformer.py:
1657 * tests/scanner/Foo-expected.gir:
1658 * tests/scanner/foo-object.h:
1659 Add support for typedef void foo type of
1662 2008-08-19 Johan Dahlin <johan@gnome.org>
1665 * giscanner/girwriter.py:
1666 * giscanner/glibtransformer.py:
1667 * giscanner/transformer.py:
1668 * tests/scanner/Foo-expected.gir:
1669 Add basic support for union, base the code much
1670 on Struct. Add a testcase.
1672 2008-08-19 Johan Dahlin <johan@gnome.org>
1674 * tests/scanner/Foo-expected.gir:
1675 * tests/scanner/foo-object.h:
1676 Add a union testcase which the compiler currently
1679 2008-08-19 Johan Dahlin <johan@gnome.org>
1681 * gobject-introspection-1.0.pc.in:
1682 Add a g_ir_compiler variable
1684 2008-08-19 Colin Walters <walters@verbum.org>
1686 * giscanner/ast.py: Rework types to be more closely
1688 * giscanner/girparser.py: Parse more bits.
1689 * giscanner/girwriter.py: Write sequences in a new
1690 way that specifies container type.
1691 * giscanner/glibast.py: Adjust for ast.py changes,
1692 add 'ctype' property to GLibObject and GLibInterface
1693 so we can look things up by it later.
1694 * gicanner/transformer.py: Names is new class holding
1695 the various namespaces we manage. Do not confuse
1696 with Namespace which is toplevel XML node effectively.
1697 Rework all type resolution to go through
1698 _resolve_type_name_1.
1699 * giscanner/glibtransformer.py: Raise UnknownTypeError
1700 instead of ValueError for cleanliness. Add Unresolved
1701 class to mark types whose parent we haven't seen yet.
1702 Use new Names object from transformer.py.
1703 Correctly look up parent=.
1704 Fix type validation to handle sequences.
1705 * tests/scanner/Foo-expected.gir: Update for sequence
1706 work, int instead of int32.
1707 * tools/g-ir-scanner: Add --noclosure option
1708 * gir/Makefile.am: Use --noclosure by default for
1711 2008-08-18 Johan Dahlin <johan@gnome.org>
1713 * gir/gio-2.0-good.gir:
1714 * gir/glib-2.0-good.gir:
1715 * gir/gobject-2.0-good.gir:
1718 2008-08-18 Johan Dahlin <johan@gnome.org>
1721 * giscanner/girparser.py:
1722 * giscanner/girwriter.py:
1723 * giscanner/glibast.py:
1724 * giscanner/glibtransformer.py:
1725 * giscanner/transformer.py:
1726 * tests/scanner/Foo-expected.gir:
1727 * tests/scanner/foo-object.h:
1728 * tests/scanner/utility-expected.gir:
1729 * tests/scanner/utility.h:
1730 Redo type resolving and validation.
1731 Add a couple of new tests.
1732 Patch mostly written by Colin.
1734 2008-08-18 Johan Dahlin <johan@gnome.org>
1737 * giscanner/girparser.py:
1739 * giscanner/transformer.py:
1740 Improve enum parsing for enums without a GType.
1741 Make flags/enum references to other girs work
1742 * giscanner/utils.py:
1744 * tests/scanner/Makefile.am:
1745 * tests/scanner/foo-object.h:
1746 * tests/scanner/utility-expected.gir:
1747 * tests/scanner/utility.h:
1748 Add a new test for external enum references
1750 2008-08-18 Johan Dahlin <johan@gnome.org>
1752 * docs/global-module-registry.txt: Update
1754 * tests/array.gir: Update with new type proposal
1756 * girepository/girepository.c (g_type_tag_to_string):
1757 * girepository/girepository.h:
1758 * girepository/girnode.c (g_ir_node_get_full_size_internal),
1760 * girepository/girnode.h:
1761 Make enum serializing functions public. Clean up some whitespace.
1763 2008-08-17 Johan Dahlin <johan@gnome.org>
1765 * docs/global-module-registry.txt:
1766 Add a document for an on disk module registry format
1768 2008-08-17 Johan Dahlin <johan@gnome.org>
1771 * gir/gio-2.0-good.gir:
1774 2008-08-17 Johan Dahlin <johan@gnome.org>
1777 * gir/glib-2.0-good.gir:
1778 * gir/gobject-2.0-good.gir:
1779 * giscanner/cgobject.py:
1780 * giscanner/glibtransformer.py:
1781 Regenerate GObject & GType.
1782 Avoid warnings when generating gobject-2.0.gir.
1783 Introspect a little more, and skip *_get_type functions.
1785 2008-08-17 Colin Walters <walters@verbum.org>
1787 * gir/glib-2.0.gir, gir/gobject-2.0.gir:
1788 Rename to -good, always generate during build.
1789 * gir/Makefile.am: Ensure .gir files dep on
1790 all scanner sources.
1791 * Makefile.am: Switch build order to ensure
1792 the scanner is ready before we do gir/.
1793 * tools/g-ir-scanner: Look for .git too.
1795 2008-08-17 Johan Dahlin <johan@gnome.org>
1797 * girepository/gtypelib.c (validate_enum_blob):
1798 * giscanner/glibtransformer.py:
1799 * giscanner/transformer.py:
1800 Remove resolve_possible_typedefs, it was unused.
1801 Allow multiple enum values of the sample value in an enum,
1802 since it's actually pretty common.
1803 Register enums so they can be resolved too.
1805 2008-08-16 Johan Dahlin <johan@gnome.org>
1807 * giscanner/girparser.py:
1808 Parse enumeration/bitfield.
1810 2008-08-16 Johan Dahlin <johan@gnome.org>
1812 * giscanner/girparser.py:
1815 2008-08-16 Johan Dahlin <johan@gnome.org>
1817 * giscanner/glibtransformer.py:
1818 Resolve type names for alias targets
1819 * giscanner/transformer.py:
1820 Skip FILE* parameters fow now
1822 2008-08-16 Johan Dahlin <johan@gnome.org>
1825 * gir/gobject-2.0.gir:
1828 * tests/scanner/Makefile.am:
1831 2008-08-15 Colin Walters <walters@verbum.org>
1833 * giscanner/glibtransformer.py: Explicitly construct
1834 new list, since we're deleting as we iterate.
1835 Don't delete all structures which end in Class; just
1836 ones which have a paired GObject.
1837 Fix printing of type warning.
1838 * giscanner/transformer.py: Make strip_namespace_object
1839 be the identity function if it doesn't match the
1842 2008-08-15 Colin Walters <walters@verbum.org>
1844 * giscanner/cgobject.py: Define yet more argument
1845 prototypes; fix prototype for g_type_fundamental.
1847 2008-08-14 Johan Dahlin <johan@gnome.org>
1849 * tests/Makefile.am:
1850 * tests/constant.gir:
1851 * tests/gobject.gir:
1853 * tools/generate.c (write_struct_info):
1854 Fix generator for constant/gobject/struct
1856 2008-08-14 Johan Dahlin <johan@gnome.org>
1858 * tests/Makefile.am:
1860 * tools/generate.c (write_enum_info):
1861 Fix generation of enum/bitfields
1863 2008-08-14 Johan Dahlin <johan@gnome.org>
1865 * girepository/girparser.c (start_field), (start_constant),
1866 (start_type), (end_element_handler):
1867 Clear up constant parsing
1872 * tools/generate.c (write_callable_info), (write_function_info),
1873 (write_callback_info), (write_constant_info), (write_signal_info),
1874 (write_vfunc_info), (write_property_info), (write_object_info),
1875 (write_interface_info):
1876 Constants/Signals are handled now.
1878 2008-08-14 Johan Dahlin <johan@gnome.org>
1880 * girepository/girparser.c (start_type):
1881 Don't require c:type.
1882 * tests/Makefile.am:
1885 Update, remove parts we don't support yet
1886 * tests/roundtrips.sh:
1888 * tools/generate.c (write_type_info), (write_field_info),
1889 (write_callable_info), (write_struct_info):
1890 Make it emit proper gir.
1892 2008-08-14 Johan Dahlin <johan@gnome.org>
1894 * giscanner/transformer.py:
1895 New internal function for adding a new node.
1897 2008-08-14 Johan Dahlin <johan@gnome.org>
1900 Define an internal _H_ variable so we skip parsing both
1901 i18n headers, only one is needed.
1903 Add the glib-2.0.gir too.
1904 * giscanner/glibast.py:
1905 Add gconstpointer as an alias for ANY
1906 * giscanner/transformer.py:
1907 Do not lower case enumeration names per se.
1908 Skip functions which has parameters called 'va_list'
1910 2008-08-14 Colin Walters <walters@verbum.org>
1912 * giscanner/transformer.py: Comment data structures.
1913 Also squash pointers in resolve_type_name to correspond
1914 with what we do for params.
1915 * giscanner/glibtransformer.py: Print warnings in more
1916 situations. Rework checks for method/constructor to
1917 look up in our GType database instead of just checking
1918 for *. Avoid generating <record> for GObject which
1919 duplicate the <class>.
1920 * gir/Makefile.am: Generate glib-2.0.gir and gobject-2.0.gir
1923 2008-08-14 Johan Dahlin <johan@gnome.org>
1925 * giscanner/girwriter.py:
1926 * giscanner/glibast.py:
1927 * giscanner/glibtransformer.py:
1928 * giscanner/transformer.py:
1930 * tests/Makefile.am:
1931 Add pyflakes.py and run it in make check.
1932 Update the source code to fix the errors reported by
1935 2008-08-14 Johan Dahlin <johan@gnome.org>
1938 * giscanner/girparser.py:
1939 * giscanner/glibast.py:
1940 * giscanner/glibtransformer.py:
1941 Refactor the parser a bit.
1942 Add parent type to interfaces and update callsites.
1944 2008-08-14 Johan Dahlin <johan@gnome.org>
1946 * giscanner/glibtransformer.py:
1947 * giscanner/utils.py:
1948 Refactor a bit, avoid isinstance and add a method
1949 for each type we parse.
1951 2008-08-14 Johan Dahlin <johan@gnome.org>
1954 * giscanner/girparser.py:
1955 * giscanner/glibtransformer.py:
1956 * tests/Makefile.am:
1957 Run pep8.py in make check, fix old errors.
1959 2008-08-13 Colin Walters <walters@verbum.org>
1961 * giscanner/girparser.py: Parse records.
1963 2008-08-13 Colin Walters <walters@verbum.org>
1965 * gir/Makefile.am: Install again.
1966 * gir/gobject-2.0.gir: Add some more bits.
1968 2008-08-13 Colin Walters <walters@verbum.org>
1970 * gir/gobject-2.0.gir: Use correct namespace, add GType.
1971 * giscanner/girparser.py: Handle aliases.
1972 * giscanner/transformer.py: Record aliases. Make resolver
1973 functions public; we now call into these explicitly from
1974 glibtransformer. Handle resolving aliases.
1975 * giscanner/glibtransformer.py: Separate our internal namespace
1976 from included ones. Call up into transformer's resolver functions.
1978 2008-08-13 Johan Dahlin <johan@gnome.org>
1980 * girepository/girnode.c (g_ir_node_get_full_size_internal):
1981 * girepository/girparser.c (start_class):
1982 * giscanner/glibtransformer.py:
1983 Allow get_type to be None, set a get_type for GInitiallyUnowned too.
1985 2008-08-13 Johan Dahlin <johan@gnome.org>
1987 * giscanner/cgobject.py:
1988 Register GInitiallyUnowned
1989 * giscanner/girwriter.py:
1990 * giscanner/glibtransformer.py:
1991 Special case GObject/GInitially owned as they are a bit special to use.
1993 2008-08-13 Colin Walters <walters@verbum.org>
1995 * tests/scanner/Foo-expected.gir, tests/scanner/utility-expected.gir:
1996 Object is in GObject namespace.
1998 2008-08-13 Colin Walters <walters@verbum.org>
2000 * giscanner/girparser.py: Fix processing of functions
2003 2008-08-13 Colin Walters <walters@verbum.org>
2005 * giscanner/girparser.py: Parse more than just <class.
2006 * giscanner/glibtransformer.py: Put aliases in a separate
2007 data structure since their name is not canonicall.
2008 * giscanner/transformer.py: Handle resolving type names
2011 2008-08-13 Johan Dahlin <johan@gnome.org>
2013 * tools/g-ir-scanner:
2014 Allow multiple libraries
2015 * giscanner/glibtransformer.py:
2016 Rename load_library to add_library, traverse over all libraries
2017 when trying to resolve a function
2019 2008-08-12 Colin Walters <walters@verbum.org>
2021 * giscanner/transformer.py: Record typedefs as <alias> elements.
2022 Also attempt to look up types in external namespaces.
2023 * giscanner/girwriter.py: Write them.
2024 * giscanner/glibtransformer.py: Rework resolver using real instanceof
2025 checks. Resolve interface methods and properties.
2026 * tests/scanner/foo-object.h: Add a method with typedef.
2027 * tests/scanner/Foo-expected.gir: Update.
2028 * girepository/girnode.c: Debug tweaks.
2029 * girepository/girparser.c: Make a first pass through the XML where we
2030 record all the aliases. This lets us resolve them as we go through the
2032 * gir/Makefile.am: Don't install gobject-2.0.gir; we want that to come
2033 from gir-repository.
2035 2008-08-12 Colin Walters <walters@verbum.org>
2037 * giscanner/glibtransformer.py: Resolve typedefs (e.g. AtkAttributeSet -> GSList).
2038 Correctly do subclasseing in 2nd pass resolution. Handle callbacks in structure
2040 * giscanner/transformer.py: Record typedefs and expose public API for resolving
2042 * tests/scanner/Foo-expected.gir: Fix expected callback types.
2044 2008-08-12 Colin Walters <walters@verbum.org>
2046 * giscanner/glibtransformer.py: Also transform object properties.
2048 2008-08-12 Colin Walters <walters@verbum.org>
2050 * giscanner/glibtransformer.py: Also transform callbacks
2051 and structure field types.
2052 * tests/scanner/Fooe-expected.gir: Update to expect correct
2053 names for callbacks and structs.
2055 2008-08-12 Colin Walters <walters@verbum.org>
2057 * girepository/girparser.c: Handle 'any'.
2058 * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
2059 Add test for void *.
2061 2008-08-12 Colin Walters <walters@verbum.org>
2063 * giscanner/glibtransformer.py: We need to do type
2064 resolution in a second pass after we've seen all the
2065 enums, records, etc.
2067 2008-08-12 Colin Walters <walters@verbum.org>
2069 * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
2070 Add enum return value.
2071 * giscanner/glibtransformer.py: Transform function return types
2074 2008-08-12 Colin Walters <walters@verbum.org>
2076 * tests/scanner/Makefile.am: Dep .gir files on scanner
2077 sources too. Also remove @ so we see scanner invocations.
2079 2008-08-12 Colin Walters <walters@verbum.org>
2081 * girepository/girparser.c, girepository/gtypelib.c,
2082 girepository/gtypelib.h, girepository/girnode.c:
2083 Remove usage of (GAPI-oriented) TypeTag in favor of
2084 GITypeTag from girepository.h.
2086 2008-08-10 Colin Walters <walters@verbum.org>
2088 * tests/roundtrips.sh: Use the correct tests.
2090 2008-08-10 Colin Walters <walters@verbum.org>
2092 * giscanner/cgobject.py: Declare/wrap a few more functions.
2093 Fix parameter types for g_object_new and g_type_fundamental.
2095 2008-08-10 Colin Walters <walters@verbum.org>
2097 * giscanner/cgobject.py: Add new decorator @gwrap which forces
2098 us to declare types for both return value and parameters. The
2099 ctypes default of 'int' is bad because it hides 32/64 bit
2100 problems. Convert all existing functions to use it.
2102 2008-08-09 Johan Dahlin <johan@gnome.org>
2104 * giscanner/__init__.py:
2106 * giscanner/cgobject.py:
2107 * giscanner/gidlparser.py:
2108 * giscanner/gidlwriter.py:
2109 * giscanner/girparser.py:
2110 * giscanner/girwriter.py:
2111 * giscanner/glibast.py:
2112 * giscanner/glibtransformer.py:
2113 * giscanner/odict.py:
2114 * giscanner/sourcescanner.py:
2115 * giscanner/transformer.py:
2116 * giscanner/utils.py:
2117 * giscanner/xmlwriter.py:
2118 * tools/g-ir-scanner:
2122 2008-08-09 Johan Dahlin <johan@gnome.org>
2125 * relaxng/c-types.xml:
2126 * relaxng/g-types.xml:
2127 * relaxng/relaxng.rng:
2129 Remove outdated relaxng schemas.
2131 2008-08-09 Johan Dahlin <johan@gnome.org>
2134 Rename metadata to typelib in variable names,
2137 2008-08-09 Johan Dahlin <johan@gnome.org>
2141 Remove old C scanner, which got rewritten in python.
2143 2008-08-09 Johan Dahlin <johan@gnome.org>
2145 * girepository/Makefile.am:
2146 * tools/Makefile.am:
2147 * tools/girmodule.c:
2148 * tools/girmodule.h:
2151 * tools/girparser.c:
2152 * tools/girparser.h:
2153 * tools/girwriter.c:
2154 * tools/girwriter.h:
2155 Move shared *.[ch] files to girepository from tools
2157 2008-08-09 Johan Dahlin <johan@gnome.org>
2159 * tests/Makefile.am:
2162 * tests/constant.test:
2164 * tests/errors.test:
2165 * tests/function.test:
2166 * tests/gobject.test:
2167 * tests/interface.test:
2168 * tests/object.test:
2169 * tests/struct.test:
2174 Rename *.test to *.gir
2176 2008-08-09 Johan Dahlin <johan@gnome.org>
2179 * tests/Makefile.am:
2180 * tests/parser/Foo-expected.gir:
2181 * tests/parser/Makefile.am:
2182 * tests/parser/foo-object.h:
2183 * tests/parser/foo.c:
2184 * tests/parser/utility-expected.gir:
2185 * tests/parser/utility.c:
2186 * tests/parser/utility.h:
2187 * tests/scanner/Makefile.am:
2188 Rename tests/parser to test/scanner
2190 2008-08-08 Colin Walters <walters@verbum.org>
2192 * tests/roundtrips.sh: Use local .gir files again.
2194 2008-08-08 Colin Walters <walters@verbum.org>
2196 * tests/invoke/Makefile.am: .gir file depends on libtool
2199 2008-08-08 Colin Walters <walters@verbum.org>
2201 * tools/girnode.c: Pass through parent node so we can
2202 print the node whose child is NULL, if that occurs.
2204 2008-08-08 Johan Dahlin <johan@gnome.org>
2206 * tests/Makefile.am:
2207 Disable roundtrip tests which are not yet working
2208 * tests/invoke/testfns.gir:
2211 2008-08-08 Johan Dahlin <johan@gnome.org>
2213 * giscanner/girwriter.py:
2215 * giscanner/glibast.py:
2216 * giscanner/glibtransformer.py:
2217 Swap order of members, to keep it consistent with
2220 2008-08-08 Johan Dahlin <johan@gnome.org>
2222 * girepository/gtypelib.c (validate_header):
2223 * girepository/gtypelib.h:
2225 * giscanner/girwriter.py:
2226 * giscanner/sourcescanner.c (gi_source_symbol_ref),
2227 (gi_source_symbol_unref):
2230 * tests/constant.test:
2232 * tests/errors.test:
2233 * tests/function.test:
2234 * tests/gobject.test:
2235 * tests/interface.test:
2236 * tests/invoke/Makefile.am:
2237 * tests/invoke/testfns.xml:
2238 * tests/object.test:
2239 * tests/parser/Makefile.am:
2240 * tests/roundtrips.sh:
2241 * tests/struct.test:
2246 * tools/Makefile.am:
2247 * tools/compiler.c (main):
2248 * tools/generate.c (write_callable_info), (write_function_info),
2250 * tools/gidlmodule.c:
2251 * tools/gidlmodule.h:
2254 * tools/gidlparser.c:
2255 * tools/gidlparser.h:
2256 * tools/gidlwriter.c:
2257 * tools/gidlwriter.h:
2258 * tools/scanner.c (create_node_from_gtype),
2259 (create_node_from_ctype), (g_igenerator_process_properties),
2260 (g_igenerator_process_signals), (g_igenerator_create_object),
2261 (g_igenerator_create_interface), (g_igenerator_create_boxed),
2262 (g_igenerator_create_enum), (g_igenerator_create_flags),
2263 (g_igenerator_process_function_symbol),
2264 (g_igenerator_process_unregistered_struct_typedef),
2265 (g_igenerator_process_struct_typedef),
2266 (g_igenerator_process_union_typedef),
2267 (g_igenerator_process_enum_typedef),
2268 (g_igenerator_process_function_typedef),
2269 (g_igenerator_process_constant), (g_igenerator_process_symbols),
2270 (g_igenerator_add_module), (g_igenerator_add_include_idl):
2271 Merge in the gir-compiler branch.
2272 Thanks to Philip and Colin for their help.
2274 2008-07-26 Colin Walters <walters@verbum.org>
2276 * tools/Makefile.am (bin_PROGRAMS): Install g-idl-compiler
2277 and g-idl-generate to go along with how we're changing this
2278 module to be installed.
2279 * gobject-introspection-1.0.pc.in: Set up Cflags and Libs.
2281 2008-07-24 Colin Walters <walters@verbum.org>
2283 * girepository/girepository.c (g_irepository_register): Add
2284 environment variable G_IREPOSITORY_VERBOSE so we can print
2285 out what we're doing.
2286 * girepository/girepository.c (g_irepository_register_file):
2287 Add GError error message to g_debug call.
2289 2008-07-08 Jürg Billeter <j@bitron.ch>
2291 * giscanner/glibast.py:
2295 2008-06-21 Johan Dahlin <jdahlin@async.com.br>
2297 * giscanner/girparser.py (GIRParser._parse_api): Ignore a few
2300 2008-06-20 Johan Dahlin <jdahlin@async.com.br>
2303 * giscanner/girwriter.py:
2304 * giscanner/transformer.py:
2305 * tests/parser/Foo-expected.gir:
2306 * tests/parser/foo-object.h:
2307 * tests/parser/foo.c (foo_object_allow_none):
2308 Add support for gtk-doc annotations for allow-none.
2311 2008-06-19 Johan Dahlin <jdahlin@async.com.br>
2314 * giscanner/girwriter.py:
2315 * giscanner/glibast.py:
2316 * giscanner/glibtransformer.py:
2317 * giscanner/transformer.py:
2318 * tests/parser/Foo-expected.gir:
2319 Start using abstract type instead of the raw C types.
2320 Register a bunch of glib types we care about.
2322 2008-06-19 Rob Taylor <rob.taylor@codethink.co.uk>
2327 2008-06-08 Philip Van Hoof <pvanhoof@gnome.org>
2329 * girepository/girepository.c:
2330 * girepository/gtypelib.c:
2331 * girepository/ginfo.c:
2332 * girepository/ginvoke.c:
2333 * girepository/girepository.h:
2334 * girepository/gtypelib.h:
2335 * girepository/gmetadata.c:
2336 * girepository/Makefile.am:
2337 * girepository/gmetadata.h:
2339 * tools/gidlmodule.c:
2342 * tools/gidlmodule.h:
2343 * tools/gidlparser.c:
2345 Renamed GMetadata to GTypelib
2347 2008-06-07 Johan Dahlin <jdahlin@async.com.br>
2349 * giscanner/xmlwriter.py:
2350 Improve line wrapping when > 79 charaters
2352 2008-06-05 Jürg Billeter <j@bitron.ch>
2355 * giscanner/girwriter.py:
2356 * giscanner/transformer.py:
2357 Use <type> element for field types
2358 * tests/parser/Foo-expected.gir:
2361 2008-06-04 Johan Dahlin <jdahlin@async.com.br>
2363 * giscanner/glibtransformer.py:
2364 Fix a bug which prevented GdkEvent from being generated
2366 2008-06-03 Johan Dahlin <jdahlin@async.com.br>
2368 * giscanner/Makefile.am:
2370 * giscanner/girwriter.py:
2371 * giscanner/glibast.py:
2372 * giscanner/glibtransformer.py:
2373 * giscanner/transformer.py:
2374 * giscanner/utils.py:
2375 * tests/parser/Foo-expected.gir:
2376 Improve enum member parsing and introspection
2378 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
2380 * giscanner/scannerparser.y:
2381 * giscanner/sourcescanner.h:
2382 * giscanner/sourcescanner.py:
2383 Add a new source type enum for member.
2384 Use __repr__ for improved debugging
2385 * giscanner/girparser.py:
2387 * giscanner/transformer.py:
2388 Improve parsing of struct members.
2389 * tests/parser/foo-object.h:
2392 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
2394 * giscanner/xmlwriter.py:
2395 Improve error reporting when trying to quote None.
2396 * giscanner/girparser.py:
2397 Do not print warnings when including more complete .gir files
2398 * giscanner/girwriter.py:
2399 Do not require a name for parameters, add a todo for singletons
2400 * giscanner/glibtransformer.py:
2401 Refactor the way structs are done, add a couple of hacks to allow
2403 * giscanner/transformer.py:
2404 Add enough hacks so cairo, atk and pango.gir can be parsed properly
2405 * gobject-introspection-1.0.pc.in:
2406 Export girdir, so we can access gobject-2.0.gir from outside
2408 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
2410 * tools/g-ir-scanner:
2411 * tests/parser/Makefile.am:
2412 Update sys.path before running the parser so we don't have
2413 to setup PYTHONPATH ourselves.
2417 * girepository/Makefile.am:
2418 * giscanner/transformer.py:
2419 * gobject-introspection-1.0.pc.in:
2420 * gobject-introspection.pc.in:
2421 * tools/Makefile.am:
2423 Rename pkg-config name to gobject-introspection-1.0,
2424 Do not installed anything which is not using the gir format.
2425 Disable compililation the old C scanner, but still keep the source
2426 until all the remaning functionallity has been ported.
2428 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
2430 * giscanner/giscannermodule.c (symbol_get_ident): Prevent
2431 a crash when symbol->indent is NULL.
2433 * giscanner/sourcescanner.py (ctype_name): Add ctype_name,
2434 a function to convert a CTYPE symbol to a string
2436 2008-05-24 Johan Dahlin <jdahlin@async.com.br>
2439 * giscanner/girwriter.py:
2440 * giscanner/giscannermodule.c
2441 (pygi_source_scanner_append_filename),
2442 (pygi_source_scanner_parse_file):
2443 * giscanner/glibtransformer.py:
2444 * giscanner/sourcescanner.py:
2445 Revert back to using temporary files to send in headers.
2446 Allow Functions to be passed in as callbacks, add a couple
2447 of try/excepts missing features.
2448 We can now scan pango
2450 2008-05-08 Johan Dahlin <johan@gnome.org>
2452 * giscanner/glibtransformer.py:
2453 * giscanner/transformer.py:
2454 Move namespace stripping glibtransformer->transformer
2456 2008-05-08 Johan Dahlin <johan@gnome.org>
2459 * giscanner/girwriter.py:
2460 * giscanner/glibtransformer.py:
2461 * giscanner/transformer.py:
2462 * tools/g-ir-scanner:
2463 Introduce a namespace ast node
2465 2008-05-05 Johan Dahlin <johan@gnome.org>
2467 * giscanner/__init__.py:
2468 * giscanner/sourcescanner.py:
2469 * giscanner/transformer.py:
2470 Move sourcescanner symbols to the sourcescanner module, instead
2471 of in the global __init__ namespace.
2473 2008-05-03 Johan Dahlin <johan@gnome.org>
2475 * giscanner/glibtransformer.py:
2476 * tools/g-ir-scanner:
2477 Handle missing parameters better, allow - and + in .la dlname
2480 2008-05-03 Johan Dahlin <johan@gnome.org>
2482 * giscanner/__init__.py:
2484 * giscanner/girwriter.py:
2485 * giscanner/glibtransformer.py:
2486 * giscanner/transformer.py:
2487 Parse struct fields properly, improve debugging.
2489 2008-04-29 Johan Dahlin <johan@gnome.org>
2492 * giscanner/girwriter.py:
2493 * giscanner/transformer.py:
2494 * tests/parser/Foo-expected.gir:
2496 Use transfer-ownership everywhere, to mark ownership/calle/caller etc.
2498 2008-04-29 Johan Dahlin <jdahlin@async.com.br>
2501 * docs/g-ir-scanner.1:
2502 * metadata-annotations-proposal.txt:
2503 * metadata-format.txt:
2504 Add a basic, unfinshed man page for g-ir-scanner, move documents into .txt
2506 2008-04-29 Johan Dahlin <jdahlin@async.com.br>
2508 * giscanner/girwriter.py:
2509 * giscanner/glibtransformer.py:
2510 * giscanner/transformer.py:
2511 * giscanner/xmlwriter.py:
2512 * tests/parser/Foo-expected.gir:
2513 * tests/parser/foo-object.h:
2514 Write record/structs to gir file too. Add a couple of tests,
2515 fix an off by one error in xmlwriter.py.
2517 2008-04-28 Johan Dahlin <johan@gnome.org>
2519 * giscanner/xmlwriter.py: Calculate the line length properly,
2520 include the provided extra indentation in the calculation, really.
2522 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
2525 * giscanner/glibast.py:
2526 * giscanner/glibtransformer.py:
2527 * giscanner/transformer.py:
2528 * tools/g-ir-scanner:
2529 Add a --strip-prefix and sort out confusion between names and symbols
2530 for functions and struct + derivaties.
2531 Refactor bootstrap of g-ir-scanner, so we can set options on
2532 Transformer() before parsing everything.
2534 2008-04-28 Johan Dahlin <johan@gnome.org>
2536 * giscanner/transformer.py (Transformer._traverse_one): Avoid recursion
2537 when scanning girepository.h
2539 * giscanner/sourcescanner.py (SourceScanner._preprocess): Define
2540 a __GI_SCANNER__ when we run.
2542 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
2545 * giscanner/girwriter.py:
2546 * giscanner/glibast.py:
2547 * giscanner/glibtransformer.py:
2548 * tests/parser/Foo-expected.gir:
2549 * tests/parser/utility-expected.gir:
2550 Rename most c:identifier to c:type. Add new ones to
2551 class/interface/enum/boxed.
2553 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
2556 * giscanner/girwriter.py:
2557 * giscanner/glibtransformer.py:
2558 * tests/parser/Foo-expected.gidl:
2559 * tests/parser/Makefile.am:
2560 Move c:identifier from return-value to subchild type,
2561 as per Jürgs suggestion
2563 2008-04-28 Johan Dahlin <johan@gnome.org>
2565 * giscanner/girwriter.py:
2566 * tests/parser/Foo-expected.gir:
2567 Write property.type as a child node.
2569 2008-04-27 Johan Dahlin <johan@gnome.org>
2574 * gidl/gobject-2.0.gidl:
2576 * gir/gobject-2.0.gir:
2577 * tests/parser/Makefile.am:
2578 Replace the GObject gidl with a GObject gir.
2580 2008-04-27 Johan Dahlin <johan@gnome.org>
2582 * tools/Makefile.am (bin_SCRIPTS): g-ir-scanner is a script,
2585 * giscanner/xmlwriter.py:
2586 * tests/parser/Foo-expected.gir:
2587 Include indentation in line length calculation
2589 2008-04-27 Johan Dahlin <johan@gnome.org>
2591 * giscanner/girparser.py:
2592 Prettify NS parsing using elementtree.
2594 2008-04-27 Johan Dahlin <johan@gnome.org>
2597 * giscanner/Makefile.am:
2598 * giscanner/girparser.py:
2599 * giscanner/glibtransformer.py:
2600 * tests/parser/Foo-expected.gidl:
2601 * tests/parser/Foo-expected.gir:
2602 * tests/parser/Makefile.am:
2603 * tests/parser/utility-expected.gidl:
2604 * tests/parser/utility-expected.gir:
2605 * tools/g-ir-scanner:
2606 Switch over to GIR as the default format. Add a simple GIDL
2608 Update tests and fix simplify makefiles by depending
2609 on GNU make extensions.
2611 2008-04-27 Johan Dahlin <johan@gnome.org>
2613 * giscanner/xmlwriter.py:
2614 Wrap attributes for lines which are wider than 79 characters
2616 * giscanner/scannerlexer.l:
2617 Allow parenthesis in annotations
2620 * giscanner/gidlwriter.py:
2621 * giscanner/girwriter.py:
2622 * giscanner/glibtransformer.py:
2623 * giscanner/transformer.py:
2624 Add initial sequence support, including annotation.
2625 Refactor type handling a bit.
2627 2008-04-27 Johan Dahlin <johan@gnome.org>
2629 * tests/parser/Foo-expected.gidl:
2630 * tests/parser/foo-object.h:
2631 * tests/parser/foo.c (foo_object_class_init),
2632 (foo_object_get_strings), (foo_object_get_objects):
2633 Add two new functions to check sequence return values.
2634 Also fixes a compilation warning.
2636 2008-04-27 Johan Dahlin <johan@gnome.org>
2638 * giscanner/giscannermodule.c (]): Cast the getter, avoids
2639 a compilation warning.
2641 * tools/Makefile.am (g_ir_scanner_SOURCES):
2642 g-ir-scanner has no sources.
2644 2008-04-25 Johan Dahlin <johan@gnome.org>
2646 * giscanner/Makefile.am:
2648 * giscanner/gidlparser.py:
2649 * giscanner/gidlwriter.py:
2650 * giscanner/girwriter.py:
2651 * giscanner/glibast.py:
2652 * giscanner/glibtransformer.py:
2653 * giscanner/transformer.py:
2654 Split out nodes to ast.py and glibast.py
2656 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
2658 * giscanner/Makefile.am:
2659 * giscanner/gidlparser.py:
2660 * giscanner/gidlwriter.py:
2661 * giscanner/girwriter.py:
2662 * giscanner/glibtransformer.py:
2663 * giscanner/gobjecttreebuilder.py:
2664 * giscanner/transformer.py:
2665 * giscanner/treebuilder.py:
2666 * tools/g-ir-scanner:
2667 Rename treebuilder to transformer and
2668 gobjectreebuilder to glibtransformer.
2670 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
2672 * giscanner/Makefile.am:
2673 * giscanner/__init__.py:
2674 * giscanner/cgobject.py:
2675 * giscanner/gidlparser.py:
2676 * giscanner/gidlwriter.py:
2677 * giscanner/girwriter.py:
2678 * giscanner/gobjecttreebuilder.py:
2679 * giscanner/odict.py:
2680 * giscanner/sourcescanner.py:
2681 * giscanner/treebuilder.py:
2682 * giscanner/xmlwriter.py:
2683 * tools/Makefile.am:
2684 * tools/g-ir-scanner:
2685 Add LGPLv2 license header and install all python files
2687 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
2690 * giscanner/gidlwriter.py:
2691 * giscanner/giscannermodule.c (pygi_source_directive_new),
2692 (directive_get_options), (pygi_source_symbol_new),
2693 (symbol_get_base_type), (pygi_source_type_new),
2694 (type_get_base_type), (type_get_child_list),
2695 (pygi_source_scanner_get_symbols),
2696 (pygi_source_scanner_get_directives):
2697 * giscanner/gobjecttreebuilder.py:
2698 * giscanner/sourcescanner.py:
2699 * giscanner/treebuilder.py:
2700 * tests/parser/foo-object.h:
2701 Add support for virtual methods.
2702 Pair struct FooClass with struct Foo.
2703 Clean up the SourceScanner bindings a bit.
2704 Add a testcase for virtual methods.
2706 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
2708 * giscanner/cgobject.py:
2709 * giscanner/gidlwriter.py:
2710 * giscanner/gobjecttreebuilder.py:
2711 Add support for signals
2713 * tests/parser/foo.c (foo_object_class_init):
2714 * Foo-expected.gidl:
2715 Add a signal and update the expected output.
2717 2008-04-24 Johan Dahlin <jdahlin@async.com.br>
2719 * giscanner/gidlwriter.py:
2720 * giscanner/girwriter.py:
2721 * giscanner/giscannermodule.c (directive_get_name),
2722 (directive_get_value), (directive_get_options),
2723 (symbol_get_directives), (symbol_set_directives),
2724 (pygi_source_scanner_parse_file),
2725 (pygi_source_scanner_lex_filename),
2726 (pygi_source_scanner_get_directives), (init_giscanner):
2727 * giscanner/sourcescanner.c (gi_source_scanner_get_directives):
2728 * giscanner/sourcescanner.h:
2729 * giscanner/sourcescanner.py:
2730 * giscanner/treebuilder.py:
2731 * tools/g-ir-scanner:
2732 Add support for source/header annotations.
2734 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
2736 * giscanner/gidlwriter.py:
2737 * giscanner/girwriter.py:
2738 * giscanner/gobjecttreebuilder.py:
2739 * giscanner/treebuilder.py:
2740 Add support for Callbacks
2742 2008-04-22 Havoc Pennington <hp@pobox.com>
2744 * girepository/ginvoke.c (g_function_info_invoke): If a symbol is
2745 not in metadata->module, look for it in the global module, in case
2746 some other object or the app itself provides the symbol.
2748 2008-04-22 Havoc Pennington <hp@pobox.com>
2750 * girepository/gmetadata.c (_g_metadata_init): hack to avoid
2751 dlopening a library that is already in the main app, by checking
2752 whether one of the lib's symbols is already loaded.
2754 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
2756 * tests/parser/Foo-expected.gidl:
2757 * tests/parser/foo-object.h:
2760 2008-04-22 Havoc Pennington <hp@pobox.com>
2762 * girepository/ginfo.c (g_interface_info_find_method):
2763 Use interface_blob_size not object_blob_size to compute offset.
2765 2008-04-22 Havoc Pennington <hp@pobox.com>
2767 * girepository/gmetadata.c (_g_metadata_init): remove
2768 G_MODULE_BIND_LOCAL flag when loading libraries, since some libs
2769 (Glade and Clutter for example) rely on being loaded globally.
2771 2008-04-22 Havoc Pennington <hp@pobox.com>
2773 * girepository/ginfo.c (g_registered_type_info_get_g_type): new
2774 function to get the GType given a RegisteredTypeInfo
2776 2008-04-22 Johan Dahlin <johan@gnome.org>
2778 * COPYING: Add a LGPL license, to prevent automake to
2779 put in a copy of GPL here. Pointed out by Havoc.
2781 * girepository/ginfo.c (g_info_from_entry), (g_type_info_new),
2782 (g_type_info_is_pointer), (g_type_info_get_tag),
2783 (g_type_info_get_param_type), (g_type_info_get_interface),
2784 (g_type_info_get_array_length), (g_type_info_is_zero_terminated),
2785 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
2786 (g_error_domain_info_get_codes), (g_enum_info_get_value),
2787 (g_object_info_get_interface), (g_object_info_get_field),
2788 (g_interface_info_get_prerequisite),
2789 (g_signal_info_get_class_closure), (g_constant_info_get_value):
2790 * girepository/ginvoke.c (get_ffi_type):
2791 * girepository/girepository.h:
2792 * girepository/gmetadata.c (g_metadata_get_dir_entry),
2793 (g_metadata_check_sanity), (validate_header),
2794 (validate_array_type_blob), (validate_iface_type_blob),
2795 (validate_param_type_blob), (validate_error_type_blob),
2796 (validate_type_blob), (validate_constant_blob),
2797 (validate_struct_blob), (validate_enum_blob):
2798 * girepository/gmetadata.h:
2799 * tests/Makefile.am:
2800 * tests/invoke/Makefile.am:
2801 * tests/invoke/invoke.c (main):
2802 * tests/roundtrips.sh:
2803 * tools/Makefile.am:
2804 * tools/compiler.c (format_output), (write_out_metadata), (main):
2805 * tools/generate.c (write_type_name), (write_type_info),
2806 (write_constant_value), (write_enum_info), (load_metadata), (main):
2807 * tools/gidlcompilercontext.c:
2808 * tools/gidlcompilercontext.h:
2809 * tools/gidlcompilerentrynode.c:
2810 * tools/gidlcompilerentrynode.h:
2811 * tools/gidlcompilertypenode.c:
2812 * tools/gidlcompilertypenode.h:
2813 * tools/gidlmodule.c (g_idl_module_build_metadata):
2814 * tools/gidlmodule.h:
2815 * tools/gidlnode.c (init_stats), (dump_stats),
2816 (g_idl_node_get_size), (g_idl_node_get_full_size),
2817 (g_idl_node_cmp), (g_idl_node_can_have_member),
2818 (g_idl_node_add_member), (g_idl_node_param_direction_string),
2819 (parse_int_value), (parse_uint_value), (parse_float_value),
2820 (parse_boolean_value), (find_entry_node), (find_entry),
2821 (serialize_type), (g_idl_node_build_metadata), (write_string):
2823 * tools/gidlparser.c (parse_type_internal):
2824 * tools/quote-file.sh:
2825 Revert revisions 157,149-148,136-129 and 120.
2826 Move back to using g-idl-generate to generate the metadata and
2827 avoids dependency on a c compiler.
2829 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
2831 * giscanner/girwriter.py:
2832 * tools/g-ir-scanner:
2833 Add an initial GIR writer and a --format option to g-ir-scanner
2835 2008-04-21 Johan Dahlin <johan@gnome.org>
2837 * giscanner/cgobject.py: Use ctypes.util.find_library to locate
2838 gobject-2.0 and raise ImportError if not found.
2840 * giscanner/gidlparser.py:
2841 * giscanner/gidlwriter.py:
2842 * giscanner/gobjecttreebuilder.py:
2843 * tools/g-ir-scanner:
2844 Add a --include argument to include types from other idls.
2845 Add a minimalistic GIDL parser (just objects for now)
2846 Implement resolving of external type references and use it to
2847 resolve parent types, argument types and return types.
2849 2008-04-21 Johan Dahlin <johan@gnome.org>
2851 * giscanner/gidlwriter.py:
2852 * giscanner/gobjecttreebuilder.py:
2853 * giscanner/treebuilder.py:
2854 Add support for properties.
2855 Refactor Class/Interface support a bit, to share more code and
2856 always initialize their method attribute to an empty list.
2858 2008-04-21 Johan Dahlin <johan@gnome.org>
2860 * giscanner/cgobject.py:
2861 Add a workaround for a glib bug interface introspection bug
2862 (object_interface_list_properties, object_class_list_properties):
2863 Cast the return value to GParamSpec.
2865 * tests/parser/Foo-expected.gidl: Update
2866 * tests/parser/foo.c: Add a string property
2868 * giscanner/gobjecttreebuilder.py:
2869 After stripping namespaces, remove the original
2870 item to avoid duplication (GtkButton struct and Button object)
2872 2008-04-21 Johan Dahlin <johan@gnome.org>
2874 * giscanner/gobjecttreebuilder.py:
2875 * giscanner/treebuilder.py:
2876 Strip namespaces before objects, so we'll export
2877 GtkButton as Button in the gtk namespace
2879 2008-04-21 Johan Dahlin <johan@gnome.org>
2881 * giscanner/gidlwriter.py:
2882 * giscanner/gobjecttreebuilder.py:
2883 * giscanner/treebuilder.py:
2884 Add constructors for object/boxed types.
2886 2008-04-21 Johan Dahlin <johan@gnome.org>
2888 * giscanner/gidlwriter.py:
2889 * giscanner/gobjecttreebuilder.py:
2890 Add support for boxed types
2892 2008-04-21 Johan Dahlin <johan@gnome.org>
2894 * giscanner/giscannermodule.c: Mark structures as const,
2895 wrap SourceType.const_string.
2897 * tests/parser/foo-object.h: Add a couple of constants.
2899 * giscanner/gidlwriter.py:
2900 * giscanner/gobjecttreebuilder.py:
2901 * giscanner/treebuilder.py:
2902 Add basic support for interfaces
2904 * tools/g-ir-scanner:
2905 Add -o/--output for writing to a file
2907 2008-04-21 Havoc Pennington <hp@redhat.com>
2909 * TODO: add some C API wishlist items I could think of quickly
2911 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
2913 * giscanner/gidlwriter.py:
2914 * giscanner/xmlwriter.py:
2915 Add a simple api for writing tags which can be used
2916 with the new 'with statement' in python 2.5
2918 2008-04-21 Johan Dahlin <johan@gnome.org>
2920 * giscanner/gobjecttreebuilder.py:
2921 Strip namespace and object prefix from method names.
2923 2008-04-21 Johan Dahlin <johan@gnome.org>
2925 * tools/g-ir-scanner (main): Add --pkg option to pass in
2926 pkg-config modules to get cflags from.
2928 * giscanner/gidlwriter.py (GIDLWriter._write_method):
2929 Avoid duplication, reuse function writer for methods.
2931 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
2933 * giscanner/gidlwriter.py:
2934 * giscanner/gobjecttreebuilder.py:
2935 * giscanner/treebuilder.py:
2936 * tools/g-ir-scanner:
2937 Resolve libtool .la files.
2938 Strip name spaces for methods.
2939 Add function symbols
2941 2008-04-20 Johan Dahlin <jdahlin@async.com.br>
2943 * giscanner/cgobject.py:
2944 * giscanner/gidlwriter.py:
2945 * giscanner/gobjecttreebuilder.py:
2946 * giscanner/treebuilder.py:
2947 Add support for classes and methods
2949 2008-04-20 Johan Dahlin <johan@gnome.org>
2951 * giscanner/gidlwriter.py:
2952 * giscanner/gobjecttreebuilder.py:
2953 * giscanner/odict.py:
2954 Avoid conflicts, keep the output ordered similar to
2955 the order of the input.
2956 Add a simple ordered dictionary implemenation
2958 2008-04-19 Johan Dahlin <johan@gnome.org>
2960 * giscanner/cgobject.py:
2961 * giscanner/gidlwriter.py:
2962 * giscanner/gobjecttreebuilder.py:
2963 * tools/g-ir-scanner:
2964 Start introspecting get-type functions.
2965 Implement support for GLib/GFlags GTypes.
2966 Add a ctype based GObject binding.
2968 2008-04-18 Johan Dahlin <jdahlin@async.com.br>
2970 * giscanner/gidlwriter.py:
2971 * giscanner/xmlwriter.py:
2972 * tools/g-ir-scanner:
2973 Add a simplistic gidl writer, which can't do too much.
2975 2008-04-18 Johan Dahlin <johan@gnome.org>
2977 * giscanner/sourcescanner.py:
2978 * giscanner/treebuilder.py:
2979 * tools/g-ir-scanner:
2980 split tree building and source scanning interface to separate files.
2982 2008-04-18 Johan Dahlin <johan@gnome.org>
2984 * tools/g-ir-scanner (Parameter.__init__): Start constructing
2986 - Add support for struct/parameter/return, start parsing of ctypes
2988 * giscanner/giscannermodule.c: wrap GISourceType.child_list and
2991 2008-03-31 Johan Dahlin <johan@gnome.org>
2993 * tools/g-ir-scanner:
2994 Start to build abstract syntax node of scanned sources.
2995 Add support for cpp options.
2997 2008-03-27 Johan Dahlin <johan@gnome.org>
2999 * giscanner/giscannermodule.c:
3000 * giscanner/scannerlexer.l:
3001 * giscanner/sourcescanner.c:
3002 * tools/g-ir-scanner:
3004 Add simple pre-processor using subprocess and a PIPE.
3005 Change the parse_file apis to accept a file descriptor.
3007 2008-03-25 Johan Dahlin <johan@gnome.org>
3009 * giscanner/__init__.py:
3010 * tools/g-ir-scanner:
3011 Fix a typo and add an example python test program.
3013 2008-03-25 Johan Dahlin <johan@gnome.org>
3015 * giscanner/__init__.py:
3016 * giscanner/giscannermodule.c:
3017 * giscanner/sourcescanner.c:
3018 * giscanner/sourcescanner.h:
3019 Add constants and wrap a few more SymbolType fields
3021 2008-03-25 Johan Dahlin <johan@gnome.org>
3025 * giscanner/__init__.py:
3026 * giscanner/giscannermodule.c:
3027 * giscanner/Makefile.am:
3029 Add initial python bindings for the scanner and
3030 depend on python 2.5.
3032 2008-03-25 Johan Dahlin <johan@gnome.org>
3036 * giscanner/Makefile.am:
3037 * giscanner/sourcescanner.c:
3038 * giscanner/sourcescanner.h:
3039 * tools/Makefile.am:
3040 * tools/grealpath.h:
3041 * tools/sourcescanner.c:
3042 * tools/sourcescanner.h:
3044 Move the scanner to a separate library.
3046 2008-03-23 Johan Dahlin <johan@gnome.org>
3048 * tools/Makefile.am:
3051 * tools/scannerlexer.l:
3052 * tools/scannerparser.y:
3053 * tools/sourcescanner.c:
3054 * tools/sourcescanner.h:
3055 Split out the source scanner from the generator.
3056 Rename the symbols used in the scanner to use the gi_ prefix.
3057 This should make it possible to use the raw C parser from
3060 2008-03-23 Johan Dahlin <johan@gnome.org>
3062 * tests/parser/Makefile.am (utility.gidl):
3063 * tests/parser/utility-expected.gidl:
3064 Pass in the gobject.gidl since we're defining a GObject.
3066 2008-03-12 Johan Dahlin <johan@gnome.org>
3068 * relaxng/relaxng.rng:
3069 Add a releaxng in relaxng we can use to validate the relaxngs
3072 2008-03-12 Jürg Billeter <j@bitron.ch>
3074 * tools/scanner.c: (g_igenerator_new):
3075 * tools/scannerparser.y:
3076 Fix compiler warnings.
3078 2008-03-12 Jürg Billeter <j@bitron.ch>
3082 * tools/scannerparser.y:
3083 Start fixing memory management in g-idl-scanner.
3085 2008-03-12 Rob Taylor <rob.taylor@codethink.co.uk>
3087 * tools/gidlcompilercontext.c: (write_compiled):
3088 Fix critical warning when no shlib passed to g-idl-compiler.
3090 2008-03-12 Johan Dahlin <johan@gnome.org>
3092 * tests/parser/utility-expected.gidl:
3093 * tests/parser/utility.h:
3094 Add a get_type-function, so the scanner actually
3095 parses it as an object.
3097 2008-03-12 Johan Dahlin <johan@gnome.org>
3099 * tools/gidlwriter.c (function_generate): Add missing trailing quote.
3102 * tests/parser/Foo-expected.gidl:
3103 * tests/parser/Makefile.am:
3104 * tests/parser/foo-object.h:
3105 * tests/parser/foo.c:
3106 * tests/parser/utility-expected.gidl:
3107 * tests/parser/utility.c:
3108 * tests/parser/utility.h:
3110 Add a new gidl test. 'utility.gidl', which is used to be able
3111 to test external type references. Add a reference to UtilityObject*
3114 2008-03-11 Johan Dahlin <johan@gnome.org>
3118 Remove most global variables
3120 2008-03-11 Philip Van Hoof <me@pvanhoof.be>
3122 * tools/scannerlexer.l:
3124 * tests/parser/Foo-expected.gidl:
3125 * tests/parser/foo.c:
3126 * tests/parser/Makefile.am:
3127 * tests/parser/foo-object.h:
3129 Added a few extra tests. Which resulted in finding a few
3130 bugs. Which resulted in me fixing those bugs
3132 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
3134 * tools/gidlcompilercontext.c: (g_idl_compiler_write_dir_entry),
3135 (g_idl_compiler_write_xref_entry), (g_idl_compiler_add_xref):
3136 Add some comments for strings into generated output for
3139 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
3141 * tools/gidlcompilercontext.c: (write_compiled):
3142 Write out the shlibs variable before writing out the strings
3143 length. Fixes compiler warning when using '-l' flag with
3146 2008-03-11 Johan Dahlin <johan@gnome.org>
3148 * tests/parser/Foo-expected.gidl:
3149 * tests/parser/foo-object.h:
3152 * tools/scannerlexer.l:
3153 Add support for parsing return arguments. Add support for
3154 caller-owns return types.
3155 Patch by Philip Van Hoof.
3157 * tools/scannerparser.y:
3158 Remove parsing of the @deprecated syntax used in headers.
3159 We will support gtk-doc deprecation in the future instead.
3161 2008-03-11 Johan Dahlin <johan@gnome.org>
3163 * tools/compiler.c (main): Coding style fixes
3165 2008-03-10 Johan Dahlin <johan@gnome.org>
3168 Add GCOV_LIBS to GILIBS
3170 2008-03-10 Johan Dahlin <johan@gnome.org>
3172 * tests/parser/Foo-expected.gidl:
3173 * tests/parser/foo.c:
3174 Rename null-ok to direction=out
3176 2008-03-10 Philip Van Hoof <me@pvanhoof.be>
3178 reviewed and extensively tested by Johan
3180 * tests/parser/Foo-expected.gidl:
3181 * tests/parser/foo-object.h:
3182 * tests/parser/foo.c:
3185 * tools/gidlwriter.c:
3188 * tools/scannerlexer.l:
3189 * tools/scannerparser.y:
3191 Add support for scanning for gtk-doc comments inside
3192 C source files. Add tests
3194 2008-03-10 Johan Dahlin <johan@gnome.org>
3196 * tests/parser/Makefile.am:
3197 * tests/parser/foo.c:
3200 * tools/scannerparser.y:
3201 Add an api to lex filenames.
3202 Lex all source .c files passed in on the command line.
3203 Scan sources in a test and a couple of private structures
3204 which should not be included in the generated gidl
3206 2008-03-10 Johan Dahlin <johan@gnome.org>
3208 * tests/invoke/Makefile.am: Make the generated metadata
3209 depend on the g-idl-compiler
3211 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
3213 * tools/gidlmodule.c
3214 * tools/gidlmodule.h
3217 Remove the old g-idl-compiler code.
3220 2008-02-22 Mark Doffman <mark.doffman@codethink.co.uk>
3222 * tools/quote-file.sh
3225 Move to using the 'C' struct compiler code.
3227 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
3229 * girepository/ginfo.c
3231 Change the way that external references with no namespace
3232 are dealt with. External references with no namespace
3233 are placed into the XML as-if they are a local reference.
3234 This is temporary, but helps with roundtrip tests.
3236 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
3238 * girepository/ginfo.c
3239 Add the ability to get the value of a constant of
3240 type TYPE_TAG_SYMBOL. In the case of a symbol the value
3241 is provided as a string.
3243 This would deal properly with:
3244 typedef char* random;
3245 const random = "A string";
3247 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
3249 * girepository/ginfo.c
3250 * girepository/girepository.h
3252 Add a function to check if an enum is registered or not.
3253 Previously anything testing this relied on the g-type
3254 string offset having a value of 0.
3256 * girepository/gmetadata.c
3257 * girepository/gmetadata.h
3259 Remove unneccesary or erroneous checks. There were two
3260 metadata validation checks which made sure that the blob
3261 sizes were the same as some magic numbers compiled into the code.
3262 This is wrong as it breaks any forwards compatibility that may
3265 Checks were also present that made sure that unregistered type
3266 blobs had a value of 0 in the g-type offset field. This is
3267 unneccessary. If a type blob is unregistered then any value
3268 in its g-type field is simply invalid.
3270 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
3272 * girepository/ginfo.c
3273 * girepository/gmetadata.c
3274 * girepository/gmetadata.h
3276 Change the metadata format to have a standard header
3277 for all the type blobs. Merge the SimpleTypeBlob
3278 and InterfaceTypeBlob into a union. A union of these
3279 two blobs existed previously but was not explicit
3280 in the metadata format.
3282 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
3284 * tools/gidlcompilercontext.c
3285 * tools/gidlcompilercontext.h
3286 * tools/gidlcompilerentrynode.c
3287 * tools/gidlcompilerentrynode.h
3288 * tools/gidlcompilertypenode.c
3289 * tools/gidlcompilertypenode.h
3291 Add code to compile a tree of GIdlNodes to
3292 a 'C' struct representing the metadata.
3293 This is to aid cross-compiling. Previously
3294 the g-idl-compiler created a binary blob with
3295 data written in the byte order and alignment
3296 of the tool rather than the intended target.
3298 Cleaned up and improved by Johan and Robert :-)
3300 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
3302 * girepository/ginvoke.c
3303 * girepository/girepository.h
3304 * girepository/gmetadata.c
3305 * girepository/gmetadata.h
3307 * tools/gidlparser.c
3308 Modify TYPE_TAG_INTERFACE to TYPE_TAG_SYMBOL
3309 to avoid confusion with the interface blob.
3312 * tools/gidlparser.c
3313 Remove magic numbers and replace with type-tag
3314 enumeration symbols.
3316 * girepository/gmetadata.c
3317 Add validate declaration.
3319 2008-03-10 Jürg Billeter <j@bitron.ch>
3321 * tools/gidlparser.c: (parse_type_internal):
3322 * tools/scannerlexer.l:
3323 * tools/scannerparser.y:
3324 Support C99 _Bool type in scanner.
3326 2008-03-10 Jürg Billeter <j@bitron.ch>
3328 * tests/parser/Foo-expected.gidl:
3329 * tests/parser/foo-object.h:
3330 * tests/parser/foo.c: (foo_enum_method):
3331 * tools/scanner.c: (g_igenerator_process_function_symbol):
3332 Don't skip functions that are defined in the namespace of a type
3333 that doesn't support methods, as for example enums.
3335 2008-03-10 Johan Dahlin <johan@gnome.org>
3337 * gidl.dtd: Remove, we're using relaxng for now
3339 * tests/parser/Foo-expected.gidl:
3340 * tests/parser/foo-object.h:
3341 * tests/parser/foo.c:
3342 Rename the enum/flags get_type functions to include the whole type.
3344 2008-03-08 Marc-Andre Lureau <marcandre.lureau@gmail.com>
3346 * tools/gidlwriter.c (enum_generate): added "type-name",
3347 "get-type" and "deprecated" missing arguments.
3348 * tests/parser/Foo-expected.gidl:
3349 * tests/parser/foo-object.h: test enum type, and no type.
3351 2008-03-06 Johan Dahlin <jdahlin@async.com.br>
3354 Consistent checks, add missing 'test'
3356 2008-03-05 Havoc Pennington <hp@redhat.com>
3358 * configure.ac: Take advantage of a libffi.pc if one exists, as it
3359 does on Fedora 8. Make libffi a hard requirement, since it was in
3360 practice anyway (was not really conditional in the code or
3361 makefile, only in configure).
3363 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
3365 reviewed by: Rob Taylor <rob.taylor@codethink.co.uk>
3366 reviewed by: Johan Dahlin <johan@gnome.org>
3368 * tests/Makefile.am:
3369 * tests/roundtrips.sh:
3370 Modify the roundtrips test so that they do not use the
3371 --raw option of the gidl compiler but instead compile a
3372 shared library to use with g_module.
3374 * tests/invoke/Makefile.am:
3375 * tests/invoke/invoke.c:
3376 Modify the invoke tests to build a shared library rather
3377 than use the --raw option.
3379 * tests/invoke/invoke-namespace-find.sh: Removed:
3380 Noone knows why this was here, so removed.
3382 2008-02-19 Rob Taylor <rob.taylor@codethink.co.uk>
3384 * tools/scanner.c: (g_igenerator_process_function_symbol):
3385 Move g_idl_node_can_have_member test later, as it broke spotting
3386 get_type's for nodes that can't have members.
3388 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
3391 * tools/gidlnode.c: (g_idl_node_can_have_member):
3392 Add g_idl_node_can_have_member.
3394 * tools/scanner.c: (g_igenerator_process_function_symbol):
3395 Use g_idl_node_can_have_member to test if we should add a function
3396 as a member of the type node.
3398 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
3400 * gidl/GLib.gidl: Renamed to gidl/gobject-2.0.gidl:
3402 * tests/parser/Makefile.am:
3403 Rename GLib.gidl to gobject-2.0.gidl and install in /usr/share/gidl.
3405 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
3407 * tools/scanner.c: (main):
3408 Ignore -pthread when passed to g-idl-scanner.
3410 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
3412 * tools/grealpath.h: Added:
3413 * tools/scanner.c: (main):
3414 * tools/scannerlexer.l:
3415 * tools/Makefile.am:
3416 Always use absolute paths with symbolic links resolved when
3417 comparing filenames.
3419 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
3421 * gobject-introspection.pc.in:
3422 Provide variables for g-idl-parser, scanner and compiler in the
3425 2008-02-13 Rob Taylor <rob.taylor@codethink.co.uk>
3428 * girepository/Makefile.am:
3429 * tools/Makefile.am:
3430 Rename GCOV_SOURCES to GCOVSOURCES to top automake complaining.
3432 2008-02-10 Johan Dahlin <johan@gnome.org>
3434 * tests/parser/Foo-expected.gidl:
3435 * tests/parser/foo-object.h:
3436 * tests/parser/foo.c: (foo_boxed_copy), (foo_boxed_free),
3437 (foo_boxed_get_type), (foo_boxed_new), (foo_boxed_method):
3440 2008-02-10 Johan Dahlin <johan@gnome.org>
3442 * tests/parser/Foo-expected.gidl:
3443 * tests/parser/foo-object.h:
3444 * tests/parser/foo.c: (foo_enum_get_type), (foo_flags_get_type):
3445 Add enum and flags test.
3447 2008-02-10 Johan Dahlin <johan@gnome.org>
3451 * girepository/Makefile.am:
3452 Make 'make distcheck' work again.
3454 2008-02-10 Johan Dahlin <johan@gnome.org>
3456 * m4/Makefile.am (EXTRA_DIST): its called as-compiler-flag.m4,
3459 * tests/parser/Makefile.am: Only create Foo.gidl when running make
3460 check, eg exclude it from BUILT_SOURCES.
3462 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
3467 * girepository/Makefile.am:
3468 * m4/Makefile.am: Added:
3469 * m4/as-compiler-flag.m4: Added:
3470 * m4/gcov.m4: Added:
3471 * tools/Makefile.am:
3472 Add ability to generate a coverage report.
3473 Adds configure option --enable-gcov and make rule 'check-coverage'.
3475 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
3479 * gidl/Makefile.am: Added:
3480 * girepository/Makefile.am: Added:
3481 * src/Makefile.am: Renamed to tools/Makefile.am:
3482 * src/compiler.c: Renamed to tools/compiler.c:
3483 * src/g-idl-offsets.pl: Renamed to tools/g-idl-offsets.pl:
3484 * src/generate.c: Renamed to tools/generate.c:
3485 * src/gidlmodule.c: Renamed to tools/gidlmodule.c:
3486 * src/gidlmodule.h: Renamed to tools/gidlmodule.h:
3487 * src/gidlnode.c: Renamed to tools/gidlnode.c:
3488 * src/gidlnode.h: Renamed to tools/gidlnode.h:
3489 * src/gidlparser.c: Renamed to tools/gidlparser.c:
3490 * src/gidlparser.h: Renamed to tools/gidlparser.h:
3491 * src/gidlwriter.c: Renamed to tools/gidlwriter.c:
3492 * src/gidlwriter.h: Renamed to tools/gidlwriter.h:
3493 * src/ginfo.c: Renamed to girepository/ginfo.c:
3494 * src/ginvoke.c: Renamed to girepository/ginvoke.c:
3495 * src/girepository.c: Renamed to girepository/girepository.c:
3496 * src/girepository.h: Renamed to girepository/girepository.h:
3497 * src/gmetadata.c: Renamed to girepository/gmetadata.c:
3498 * src/gmetadata.h: Renamed to girepository/gmetadata.h:
3499 * src/scanner.c: Renamed to tools/scanner.c:
3500 * src/scanner.h: Renamed to tools/scanner.h:
3501 * src/scannerlexer.l: Renamed to tools/scannerlexer.l:
3502 * src/scannerparser.y: Renamed to tools/scannerparser.y:
3503 * tests/invoke/Makefile.am:
3504 Split src/ into girepository/ and tools/
3508 * girepository/Makefile.am:
3509 * tests/Makefile.am:
3510 * tests/invoke/Makefile.am:
3511 * tests/parser/Makefile.am:
3512 * tests/roundtrips.sh:
3513 * tools/Makefile.am:
3514 Make distcheck work.
3516 2008-02-04 Rob Taylor <rob.taylor@codethink.co.uk>
3518 * tests/invoke/invoke.c: (main):
3519 * tests/invoke/testfns.c: (test6), (test7):
3520 * tests/invoke/testfns.xml:
3521 Add tests for invokation with a GList argument.
3522 Also tests caller-owns return values.
3524 2008-02-04 Rob Taylor <robtaylor@floopily.org>
3527 Add some documentation for GICallableInfo
3529 2008-02-01 Mark Doffman <mark.doffman@codethink.co.uk>
3532 Correct syntax errors in the DTD file.
3534 * relaxng/c-types.xml:
3535 * relaxng/g-types.xml:
3537 Add a RelaxNG specification for the GObject Introspection XML data.
3538 The Specification has validated all of the test files.
3540 2008-01-25 Rob Taylor <robtaylor@floopily.org>
3542 * tests/roundtrips.sh:
3543 * tests/struct.test:
3544 Add roundtrip tests for structs.
3546 2008-01-11 Johan Dahlin <johan@gnome.org>
3548 * src/scanner.c (g_igenerator_process_function_symbol):
3549 Refactor out g_idle_node_add_member.
3550 (create_node_from_gtype, create_node_from_ctype):
3551 Use case instead of if...else
3552 (get_type_from_type_id):
3553 Rename to create_node_from_gtype
3554 (get_type_from_ctype):
3555 Rename to create_node_from_ctype
3557 Rename ginode -> node, gitype -> type, gifunc -> func.
3559 * src/gidlnode.c (g_idl_node_add_member, g_idl_node_cmp):
3560 Two new functions, refactor out of scanner.c
3562 * src/scanner.c: (g_igenerator_process_function_symbol):
3563 * src/scannerlexer.l:
3564 Do not save the content of the deprecated variable, only
3567 2008-01-11 Johan Dahlin <johan@gnome.org>
3569 * tests/parser/foo-object.h: Add a couple of comment parser tests.
3571 2008-01-11 Jürg Billeter <j@bitron.ch>
3573 * src/scannerlexer.l:
3574 Fix GTK-Doc parsing.
3576 2008-01-11 Jürg Billeter <j@bitron.ch>
3578 * src/scannerlexer.l:
3579 Fix GTK-Doc parsing.
3581 2008-01-11 Jürg Billeter <j@bitron.ch>
3583 * src/scanner.c: (lookup_symbol):
3584 Return unresolved name if we find unknown symbol.
3586 2008-01-11 Jürg Billeter <j@bitron.ch>
3588 * src/scanner.c: (g_igenerator_generate):
3589 Initialize GObject to fix scanning interface properties.
3591 * tests/parser/Foo-expected.gidl:
3592 * tests/parser/foo-object.h:
3593 * tests/parser/foo.c: (foo_interface_get_type):
3594 Test interfaces with GObject prerequisite.
3596 * tests/parser/Makefile.am:
3597 Set G_DEBUG=fatal_warnings to abort test on warnings and criticals.
3599 2007-12-27 Johan Dahlin <johan@gnome.org>
3601 * src/scannerlexer.l:
3602 Parse gtk-doc comments.
3604 * src/gidlwriter.c: (function_generate):
3605 Reorganize, avoid duplication and add support for
3606 writing deprecated functions.
3608 * src/scannerparser.y:
3610 Add new structure CDirective and functions to create/free them.
3612 * src/scanner.c: (g_igenerator_process_function_symbol),
3613 (g_igenerator_process_unregistered_struct_typedef),
3614 (g_igenerator_process_struct_typedef),
3615 (g_igenerator_process_union_typedef),
3616 (g_igenerator_process_enum_typedef),
3617 (g_igenerator_process_function_typedef), (g_igenerator_add_symbol),
3618 (g_igenerator_start_preprocessor):
3619 Parse @deprecated directive for functions.
3620 Remove some more C99isms.
3621 Send in -C to cpp to avoid stripping comments.
3623 * tests/parser/foo-object.h:
3624 * tests/parser/Foo-expected.gidl:
3625 Add deprecated directive
3627 2007-12-27 Johan Dahlin <johan@gnome.org>
3629 * src/scannerlexer.l (intsuffix): Add emacs mode line and
3630 escape ' and " so it looks more like C.
3633 Unlink temporary file used.
3635 2007-12-27 Johan Dahlin <johan@gnome.org>
3637 * src/scanner.c: (g_igenerator_new), (g_igenerator_free),
3638 (g_igenerator_start_preprocessor), (main):
3640 * src/scannerparser.y:
3641 Plug a couple of simple memory leaks.
3643 2007-12-27 Johan Dahlin <johan@gnome.org>
3645 * src/scanner.c: (g_igenerator_parse_macros),
3646 (g_igenerator_start_preprocessor), (g_igenerator_set_verbose),
3649 * src/scannerparser.y:
3650 * tests/parser/Makefile.am:
3652 Improve error reporting, return when the preprocessor fails.
3653 Add a verbose parameter, to aid debugging.
3654 Revert to using a temporary file to communicate between the
3655 preprocessor and the parser, because we need to wait for
3656 the exit code from the pre-processor before starting to parse.
3658 2007-12-16 Johan Dahlin <jdahlin@async.com.br>
3660 * src/Makefile.am: Rename clexer.l to scannerlexer.l and
3661 cparser.y to scannerparser.y
3663 2007-12-11 Johan Dahlin <johan@gnome.org>
3667 * src/scanner.c: (g_igenerator_new):
3669 Get rid of the global the_generator variable.
3671 2007-12-10 Johan Dahlin <johan@gnome.org>
3673 * src/scanner.c (main): Add an output option,
3674 add checks for required parameters
3677 set BUILD_SOURCES and CLEANFILES properly
3679 * src/gidlwriter.c: (g_writer_write_inline), (g_writer_write),
3680 (g_writer_write_indent), (g_writer_write_unindent),
3681 (field_generate), (value_generate), (constant_generate),
3682 (property_generate), (function_generate), (vfunc_generate),
3683 (signal_generate), (interface_generate), (struct_generate),
3684 (union_generate), (boxed_generate), (enum_generate),
3685 (node_generate), (g_writer_write_module), (g_idl_writer_save_file):
3687 * src/scanner.c: (g_igenerator_generate):
3689 * src/scannerwriter.c:
3691 Refactor scannerwriter to only be tied to a GIdlModule and move
3692 it (again!) to gidlwriter.c. Change the writer function to take
3695 2007-12-10 Johan Dahlin <johan@gnome.org>
3698 * src/scanner.c: (g_igenerator_generate):
3700 * src/scannerwriter.c: (g_igenerator_write_inline),
3701 (g_igenerator_write), (g_igenerator_write_indent),
3702 (g_igenerator_write_unindent), (field_generate), (value_generate),
3703 (constant_generate), (property_generate), (function_generate),
3704 (vfunc_generate), (signal_generate), (interface_generate),
3705 (struct_generate), (union_generate), (boxed_generate),
3706 (enum_generate), (node_generate), (module_generate),
3707 (g_scanner_write_file):
3709 Move the scanner gidl writing to a separate source file.
3711 2007-12-10 Johan Dahlin <johan@gnome.org>
3716 Move over all CType construction functions.
3718 * tests/parser/Makefile.am:
3719 Be verbose when printing parsing tests results.
3721 2007-12-10 Johan Dahlin <johan@gnome.org>
3723 * src/scanner.c (g_igenerator_start_preprocessor): Refactor
3724 preprocessor handling to here. Start cpp insteado of cc -E,
3725 always include -U__GNUC__, since it's specific to the preprocessor
3728 * tests/parser/Makefile.am (check-local): Silent diff and skip
3729 -U__GNUC__ which is always defined now
3731 2007-12-10 Johan Dahlin,,, <jdahlin@plasttroll>
3733 reviewed by: <delete if not using a buddy>
3735 * src/scanner.c: (g_igenerator_start_preprocessor), (main):
3736 * tests/parser/Makefile.am:
3738 2007-12-09 Johan Dahlin <johan@gnome.org>
3741 Use GOption for command line options.
3742 (g_igenerator_new, main): Simplify constructor and they way
3743 parameters are passed into it.
3749 * src/gen-introspect.c:
3750 * src/gen-introspect.h:
3752 Rename gen-introspect.[ch] to scanner.[ch]
3754 2007-12-09 Johan Dahlin <johan@gnome.org>
3758 * src/Makefile.am: Rename gen-introspect to g-idl-scanner,
3759 don't make the repository library and the other utilites link against
3762 * src/gen-introspect.c: (g_igenerator_create_object),
3763 (g_igenerator_create_interface), (g_igenerator_create_boxed),
3764 (g_igenerator_create_enum), (g_igenerator_create_flags),
3765 (g_igenerator_process_module_symbol),
3766 (g_igenerator_process_module), (g_igenerator_generate), (main):
3767 * src/gen-introspect.h:
3768 Refactor g_igenerator_process_types into smaller pieces.
3770 * tests/parser/Makefile.am:
3771 Depend on the gen-introspect binary
3773 2007-12-09 Johan Dahlin <johan@gnome.org>
3775 * src/gen-introspect.c (g_igenerator_process_types):
3776 Break into smaller pieces, one for each generated node type.
3778 2007-12-08 Johan Dahlin <johan@gnome.org>
3780 * src/gen-introspect.c: (g_igenerator_process_types),
3781 (g_igenerator_add_module):
3782 * tests/parser/Foo-expected.gidl:
3783 * tests/parser/foo-object.h:
3784 * tests/parser/foo.c: (foo_subobject_class_init),
3785 (foo_subobject_init):
3787 Add a subobject test and make sure to register defined classes
3788 in the lookup symbol hash table.
3790 2007-12-08 Johan Dahlin <johan@gnome.org>
3794 * src/gen-introspect.c: (g_igenerator_new), (lookup_symbol),
3795 (g_igenerator_process_types), (g_igenerator_add_module),
3796 (g_igenerator_add_include_idl), (main):
3797 * src/gen-introspect.h:
3798 * tests/parser/Makefile.am:
3799 * tests/parser/Foo-expected.gidl:
3801 Change the gen-introspect to generate namespaced module names,
3802 such as GLib.Object instead of GObject.
3803 Add a GLib.gidl which introduces GLib.Object and GLib.InitiallyUnowned,
3804 add a --include-idl parameter to gen-introspect,
3805 and update the parser test.
3807 2007-12-08 Johan Dahlin <johan@gnome.org>
3809 * src/gen-introspect.c:
3810 Move main to the end of the file and attempt to make it valid
3813 * tests/parser/Makefile.am (BUILT_SOURCES): Remove .repo here,
3814 we're not quite ready to generate metadata yet.
3819 Add a simple gen-introspect parser test
3821 2007-12-06 Gustavo J. A. M. Carneiro <gjc@gnome.org>
3823 reviewed by: Johan Dahlin <johan@gnome.org>
3826 * gobject-introspection.pc.in:
3828 * src/compiler.c: (format_output), (write_out_metadata), (main):
3829 * src/gen-introspect.c: (main):
3830 * src/gen-introspect.h:
3831 * src/generate.c: (write_callable_info), (write_repository),
3832 (load_metadata), (main):
3833 * src/gidlmodule.c: (g_idl_module_new),
3834 (g_idl_module_build_metadata):
3836 * src/gidlparser.c: (start_element_handler):
3837 * src/ginfo.c: (g_info_new), (g_info_from_entry),
3838 (g_base_info_get_name), (g_base_info_get_namespace),
3839 (g_base_info_is_deprecated), (g_base_info_get_annotation),
3840 (g_base_info_get_metadata), (g_function_info_get_symbol),
3841 (g_function_info_get_flags), (g_function_info_get_property),
3842 (g_function_info_get_vfunc), (signature_offset), (g_type_info_new),
3843 (g_callable_info_may_return_null),
3844 (g_callable_info_get_caller_owns), (g_callable_info_get_n_args),
3845 (g_callable_info_get_arg), (g_arg_info_get_direction),
3846 (g_arg_info_is_return_value), (g_arg_info_is_dipper),
3847 (g_arg_info_is_optional), (g_arg_info_may_be_null),
3848 (g_arg_info_get_ownership_transfer), (g_type_info_is_pointer),
3849 (g_type_info_get_tag), (g_type_info_get_param_type),
3850 (g_type_info_get_interface), (g_type_info_get_array_length),
3851 (g_type_info_is_zero_terminated),
3852 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
3853 (g_error_domain_info_get_quark), (g_error_domain_info_get_codes),
3854 (g_value_info_get_value), (g_field_info_get_flags),
3855 (g_field_info_get_size), (g_field_info_get_offset),
3856 (g_registered_type_info_get_type_name),
3857 (g_registered_type_info_get_type_init),
3858 (g_struct_info_get_n_fields), (g_struct_info_get_field),
3859 (g_struct_info_get_n_methods), (g_struct_info_get_method),
3860 (find_method), (g_struct_info_find_method),
3861 (g_enum_info_get_n_values), (g_enum_info_get_value),
3862 (g_object_info_get_parent), (g_object_info_get_type_name),
3863 (g_object_info_get_type_init), (g_object_info_get_n_interfaces),
3864 (g_object_info_get_interface), (g_object_info_get_n_fields),
3865 (g_object_info_get_field), (g_object_info_get_n_properties),
3866 (g_object_info_get_property), (g_object_info_get_n_methods),
3867 (g_object_info_get_method), (g_object_info_find_method),
3868 (g_object_info_get_n_signals), (g_object_info_get_signal),
3869 (g_object_info_get_n_vfuncs), (g_object_info_get_vfunc),
3870 (g_object_info_get_n_constants), (g_object_info_get_constant),
3871 (g_interface_info_get_n_prerequisites),
3872 (g_interface_info_get_prerequisite),
3873 (g_interface_info_get_n_properties),
3874 (g_interface_info_get_property), (g_interface_info_get_n_methods),
3875 (g_interface_info_get_method), (g_interface_info_find_method),
3876 (g_interface_info_get_n_signals), (g_interface_info_get_signal),
3877 (g_interface_info_get_n_vfuncs), (g_interface_info_get_vfunc),
3878 (g_interface_info_get_n_constants),
3879 (g_interface_info_get_constant), (g_property_info_get_flags),
3880 (g_signal_info_get_flags), (g_signal_info_get_class_closure),
3881 (g_signal_info_true_stops_emit), (g_vfunc_info_get_flags),
3882 (g_vfunc_info_get_offset), (g_vfunc_info_get_signal),
3883 (g_constant_info_get_value), (g_union_info_get_n_fields),
3884 (g_union_info_get_field), (g_union_info_get_n_methods),
3885 (g_union_info_get_method), (g_union_info_is_discriminated),
3886 (g_union_info_get_discriminator_offset),
3887 (g_union_info_get_discriminator):
3888 * src/ginvoke.c: (g_function_info_invoke):
3889 * src/girepository.c: (g_irepository_register),
3890 (g_irepository_unregister), (g_irepository_get_default),
3891 (count_interfaces), (g_irepository_get_n_infos), (find_interface),
3892 (g_irepository_get_info), (g_irepository_find_by_name),
3893 (g_irepository_get_shared_library),
3894 (g_irepository_build_search_path), (g_irepository_register_file),
3895 (g_irepository_error_quark):
3896 * src/girepository.h:
3897 * src/gmetadata.c: (g_metadata_get_dir_entry),
3898 (g_metadata_check_sanity), (validate_header),
3899 (validate_array_type_blob), (validate_iface_type_blob),
3900 (validate_param_type_blob), (validate_error_type_blob),
3901 (validate_type_blob), (validate_arg_blob),
3902 (validate_signature_blob), (validate_function_blob),
3903 (validate_callback_blob), (validate_constant_blob),
3904 (validate_value_blob), (validate_field_blob),
3905 (validate_property_blob), (validate_signal_blob),
3906 (validate_vfunc_blob), (validate_struct_blob),
3907 (validate_enum_blob), (validate_object_blob),
3908 (validate_interface_blob), (validate_errordomain_blob),
3909 (validate_union_blob), (validate_blob), (validate_directory),
3910 (validate_annotations), (g_metadata_validate), (_g_metadata_init),
3911 (g_metadata_new_from_memory), (g_metadata_new_from_const_memory),
3912 (g_metadata_new_from_mapped_file), (g_metadata_free),
3913 (g_metadata_set_module), (g_metadata_get_namespace):
3915 * tests/Makefile.am:
3916 * tests/invoke/Makefile.am:
3917 * tests/invoke/invoke-namespace-find.sh:
3918 * tests/invoke/invoke.c: (main):
3920 Add a namespace/shared library mapping. fixes #313268.
3922 2007-12-03 Johan Dahlin <johan@gnome.org>
3924 * src/gidlparser.c (parse_type_internal): Disable char/gchar and
3927 2007-11-30 Jürg Billeter <j@bitron.ch>
3933 * src/gen-introspect.c: (g_idl_node_cmp), (g_igenerator_new),
3934 (g_igenerator_write_inline), (g_igenerator_write),
3935 (g_igenerator_write_indent), (g_igenerator_write_unindent),
3936 (field_generate), (value_generate), (constant_generate),
3937 (property_generate), (function_generate), (vfunc_generate),
3938 (signal_generate), (interface_generate), (struct_generate),
3939 (union_generate), (boxed_generate), (enum_generate),
3940 (node_generate), (module_generate), (get_type_from_type_id),
3941 (str_replace), (g_igenerator_process_properties),
3942 (g_igenerator_process_signals), (g_igenerator_process_types),
3943 (get_type_from_ctype), (g_igenerator_process_function_symbol),
3944 (g_igenerator_process_unregistered_struct_typedef),
3945 (g_igenerator_process_struct_typedef),
3946 (g_igenerator_process_union_typedef),
3947 (g_igenerator_process_enum_typedef),
3948 (g_igenerator_process_function_typedef),
3949 (g_igenerator_process_constant), (g_igenerator_process_symbols),
3950 (g_igenerator_add_symbol), (g_igenerator_is_typedef),
3951 (g_igenerator_generate), (main), (csymbol_new),
3952 (csymbol_get_const_boolean), (ctype_new), (ctype_copy),
3953 (cbasic_type_new), (ctypedef_new), (cstruct_new), (cunion_new),
3954 (cenum_new), (cpointer_new), (carray_new), (cfunction_new),
3955 (eat_hspace), (eat_line), (read_identifier),
3956 (g_igenerator_parse_macros):
3957 * src/gen-introspect.h:
3959 Import gen-introspect to generate introspection information by
3962 2007-11-30 Jürg Billeter <j@bitron.ch>
3964 * src/gidlnode.c: (g_idl_node_new): support creating callback nodes
3966 2007-11-30 Jürg Billeter <j@bitron.ch>
3968 * src/gidlparser.c: (end_element_handler): Don't leave requires
3971 2007-11-29 Johan Dahlin <johan@gnome.org>
3973 * src/gidlparser.c (parse_type_internal): Add char,
3974 gchar and guchar to the builtin types.
3976 2007-11-26 Johan Dahlin <johan@gnome.org>
3978 * src/ginfo.c: (g_object_info_get_type_name),
3979 (g_object_info_get_type_init):
3980 * src/girepository.c: (g_irepository_is_registered):
3981 * src/girepository.h:
3983 Add g_object_info_get_type_name, g_object_info_get_type_init and
3984 g_irepository_is_registered.
3986 2006-08-14 Jürg Billeter <j@bitron.ch>
3988 * src/gidlparser.c: (end_element_handler): Don't leave
3989 namespace and implements states too early.
3992 2007-11-26 Johan Dahlin <johan@gnome.org>
3994 * src/gmetadata.c (validate_struct_blob):
3995 pass blob_type to validate_function_blob instead of
3996 hard-coding BLOB_TYPE_STRUCT.
3998 Patch by Torsten Schoenfeld, fixes #314190
4000 2006-10-03 Torsten Schoenfeld <tsch@cvs.gnome.org>
4002 * src/compiler.c, src/generate.c, src/gidlnode.c,
4003 src/gidlparser.c, src/ginfo.c, src/girepository.c,
4004 tests/invoke/invoke.c, test/invoke/testfns.c: Hush compiler
4005 warnings about return values, signedness mismatches, unused
4006 variables, and unhandles enum values in switch statements.
4008 * tests/invoke/Makefile.am: Don't install the invoke test program.
4009 Add -I ../../src to the cflags used for the test functions files.
4011 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
4013 * src/girepository.h: Export g_invoke_error_quark.
4015 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
4017 * src/ginvoke.c: Remove the fallback implementation of
4018 g_function_info_invoke since we now formally depend on libffi.
4020 2005-07-25 Matthias Clasen <mclasen@redhat.com>
4022 * src/Makefile, tests/Makefile, tests/invoke/Makefile:
4023 Remove these files from cvs, as they are now generated.
4025 * src/gmetadata.c (validate_iface_type_blob): Don't
4026 complain if blob->pointer is not set, since that
4027 happens for enum and flag types. (#308935, Gustavo
4030 * Commit an autoconf-conversion patch by
4031 Gustavo Carneiro (#308708)
4033 2005-05-24 Matthias Clasen <mclasen@redhat.com>
4035 * src/compiler.c (main): Use it here to validate
4036 the generated metadata.
4038 * src/gmetadata.[hc]: Add code to validate a
4041 * metadata-format.txt: Updates
4043 2005-05-22 Matthias Clasen <mclasen@redhat.com>
4045 * tests/*: Add struct offsets to field and vfunc
4048 * src/generate.c (write_vfunc_info): Write offset
4049 information for vfuncs.
4051 * src/gidlnode.c (g_idl_node_build_metadata): Write
4052 the struct offsets into the metadata.
4054 * src/gidlparser.c: Parse the offset attributes of
4055 field and vfunc elements.
4057 * src/gidlnode.h: Add offset members to field and
4060 2005-05-21 Matthias Clasen <mclasen@redhat.com>
4064 * gidl.dtd: Updates.
4066 * src/g-idl-offsets.pl: A perl script which reads a .gidl
4067 file, creates, compiles and runs a C file, and folds the
4068 resulting struct offsets back into the .gidl file.
4070 2005-05-20 Matthias Clasen <mclasen@redhat.com>
4072 * src/gidlparser.c (start_field): Make fields in objects
4075 * src/gidlmodule.c: Include string.h
4080 * metadata-format.txt: Cleanup basic types.
4081 * src/*: Adapt to the changes.
4082 * tests/*: Adapt to the changes.
4083 * examples/gdk-pixbuf.gidl: Adapt to the changes.
4085 * src/gidlnode.c (g_idl_node_get_size): Report the correct
4086 size for enum blobs.
4087 (g_idl_node_get_full_size): Report the correct size for
4090 * src/gidlmodule.c (g_idl_module_build_metadata): Add some
4091 error checking for blob sizes.
4093 2005-05-19 Matthias Clasen <mclasen@redhat.com>
4095 * src/gidlnode.c (g_idl_node_build_metadata): Correctly handle
4096 interface types for which is_pointer is FALSE, e.g. enums.
4098 * src/gidlnode.c (g_idl_node_get_full_size)
4099 * src/gidlparser.c (parse_type_internal):
4100 * src/generate.c (write_type_info): Support unspecialized
4101 lists, hashtables and errors. Also emit a '*' after these.
4105 2005-05-17 Matthias Clasen <mclasen@redhat.com>
4109 * metadata-format.txt: Cleanups by Maciej Katafiasz.
4111 2005-05-15 Matthias Clasen <mclasen@redhat.com>
4113 * src/*.c: Change the directory to be addressed by
4114 1-based indexes, and use an index of zero to mean
4117 2005-05-15 Matthias Clasen <mclasen@redhat.com>
4119 * tests/roundtrips.sh (SIMPLE_TESTS): Add union.test.
4121 * tests/union.test: Add a union test.
4123 * src/generate.c: Handle unions.
4125 * src/girepository.h:
4126 * src/ginfo.c: Add GIUnionInfo and functions to access it.
4128 * src/gidlnode.c: Handle GIdlNodeUnion nodes.
4130 * src/gidlparser.c (start_union): Parse <union> elements.
4132 * src/gidlnode.h: Add a GIdlNodeUnion.
4134 * gidl.dtd: Add a <union> element.
4136 * src/gmetadata.c (g_metadata_check_sanity): Check
4139 * src/gmetadata.h: Add union_blob_size to Header,
4142 * metadata-format.txt: Add a UnionBlob.
4144 2005-05-13 Matthias Clasen <mclasen@redhat.com>
4146 * tests/*: Update testcases.
4148 * src/generate.c (write_callable_info): Don't forget to
4149 write transfer and null-ok attributes for return types
4152 * src/girepository.h:
4153 * src/ginfo.c (g_callable_info_may_return_null):
4154 New function to find out if a function may return NULL.
4156 * src/compiler.c (format_output): Make the generated
4159 * README: Point to a recent libffi snapshot.
4161 * tests/invoke/*: Some invoke tests.
4163 * src/Makefile: Add ginvoke.c and the necessary
4166 * src/girepository.h (g_function_info_invoke): Add
4169 * src/ginvoke.c (g_function_info_invoke): Initial
4170 implementation of invoke functionality based on libffi.
4172 * src/gidlnode.c (g_idl_node_build_metadata): Pass the
4173 strings and types hash tables in the right order when
4175 (find_entry_node): Free the name parts.
4177 2005-05-12 Johan Dahlin <johan@gnome.org>
4179 * src/generate.c: Generate consistent end tags.
4183 2005-05-12 Matthias Clasen <mclasen@redhat.com>
4187 * src/gidlparser.c (start_function): Actually add
4188 methods to objects. (Steven Walter)
4190 * src/girepository.h:
4191 * src/ginfo.c: Rename Transfer and Direction to
4192 GITransfer and GIDirection. (Torsten Schoenfeld)
4194 * tests/*: Make tests work with the changes in name
4197 * src/gidlnode.c (find_entry_node): Parse qualified
4198 names and generate xref nodes for them if needed. Don't
4199 require all modules to be loaded any more.
4201 * src/gidlmodule.c (g_idl_module_build_metadata): Choke
4204 * src/ginfo.c (g_object_info_get_parent): Return NULL
4205 if blob->parent is 0. Still need to make sure index
4208 * src/generate.c: Generate qualified names when
4209 referring to non-local types. Emit transfer attribute
4212 * src/compiler.c (format_output): Put the function
4213 attributes where gcc accepts them.
4215 2005-05-11 Matthias Clasen <mclasen@redhat.com>
4217 * src/compiler.c (main): Add a --verbose cmdline option
4218 and only log messages if it is specified.
4221 * src/gidlnode.c (init_stats, dump_stats): Collect some
4222 statistics on string and type sharing.
4224 * src/gidlmodule.c (g_idl_module_build_metadata): Use
4225 g_message() instead of fprintf().
4227 * src/gidlnode.c (g_idl_node_free): Make this more robust.
4228 (g_idl_node_get_size): Implement for structs.
4229 (g_idl_node_get_full_size): Handle parent being NULL.
4230 (serialize_type): Handle lookup failures more gracefully.
4232 2005-05-10 Matthias Clasen <mclasen@redhat.com>
4234 * src/gidlnode.c (g_idl_node_get_full_size): Correct the
4235 size calculation for 2-parameter types and for objects.
4237 * src/compiler.c: Add a cmdline option for debug output
4238 and install a log handler to implement it.
4239 * src/gidlnode.c: Add some debug spew.
4243 * src/gidlmodule.c (g_idl_module_build_metadata): Don't
4244 forget to count the module name when calculating the
4245 required size for the metadata.
4248 * src/gidlparser.c: Fix compiler warnings.
4250 2005-05-09 Matthias Clasen <mclasen@redhat.com>
4252 * src/compiler.c (main): Free the option context.
4254 * gidl.dtd: Clean up handling of names. All elements
4255 have a "name", only the elements corresponding to
4256 actual callable functions (function, method, constructor),
4257 have an additional "symbol" attribute holding the
4258 dlsym()-able function name.
4260 * src/generate.c: Adapt to generate xml matching the
4264 * src/gidlnode.c: Adapt to parse the new dtd.
4266 * tests/*.test: Adjust to the new dtd.
4268 * metadata-format.txt:
4269 * src/gmetadata.h: Remove the short_name field
4271 * src/gmetadata.c: Shrink size of ValueBlob to 12.
4272 * src/girepository.h:
4273 * src/ginfo.c (g_value_info_get_short_name): Removed
4275 2005-05-09 Matthias Clasen <mclasen@redhat.com>
4277 * gidl.dtd: Allow constructors for boxed types,
4278 patch by Jonathan Blandford.
4281 2005-05-09 Matthias Clasen <mclasen@redhat.com>
4283 * --- Initial import ---