added annotations
[gnome.gobject-introspection] / ChangeLog
1 2008-10-17  Johan Bilien  <jobi@via.ecp.fr>
2
3         * gir/glib-2.0.c: added annotations
4
5 2008-10-16  Johan Bilien  <jobi@via.ecp.fr>
6
7         * giscanner/ast.py: Also assume direction=out for size_t*, ssize_t*
8         arguments
9
10 2008-10-16  Johan Bilien  <jobi@via.ecp.fr>
11
12         Bug 556610 – giscanner/girparser.py drops parameter options
13
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)
19
20 2008-10-16  Colin Walters  <walters@verbum.org>
21
22         Bug 556185 - segfault on g_callable_info_get_return_type
23
24         Initial patch from John Ehresman.
25
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.
30
31 2008-10-16  Colin Walters  <walters@verbum.org>
32
33         Bug 556579 - union and struct name misresolved
34
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
39         namespace.
40         * tests/*: Update.
41
42 2008-10-16  Colin Walters  <walters@verbum.org>
43
44         Bug 556432 - transfer annotations and defaults
45
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.
52         * tests/*: test it.
53
54 2008-10-16  Tommi Komulainen  <tommi.komulainen@iki.fi>
55
56         * configure.ac: enable bunch of gcc warning CFLAGS
57
58 2008-10-16  Tommi Komulainen  <tommi.komulainen@iki.fi>
59
60         Bug 556543 – reduce compiler warnings
61
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,
73         post_filter):
74         * girepository/gtypelib.c (validate_function_blob, validate_enum_blob):
75         * giscanner/giscannermodule.c (directive_get_options,
76         type_get_child_list):
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
85         statements.
86
87 2008-10-16  Tommi Komulainen  <tommi.komulainen@iki.fi>
88
89         Bug 556541 – access union members through UnionBlob rather than
90         StructBlob
91
92         * girepository/ginfo.c (g_union_info_find_method): access union
93         members through UnionBlob rather than StructBlob
94
95 2008-10-15  Colin Walters  <walters@verbum.org>
96
97         Bug 556331 - clean up includes handling
98
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
102         directives.
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.
111         * tests/*: Update.
112
113 2008-10-15  Tommi Komulainen  <tommi.komulainen@iki.fi>
114
115         Bug 556434 – unhandled interface/object/... member types
116
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.)
122
123 2008-10-15  Tommi Komulainen  <tommi.komulainen@iki.fi>
124
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
128
129 2008-10-15  Tommi Komulainen  <tommi.komulainen@iki.fi>
130
131         * gir/Makefile.am (check-local): check that typelib -> gir -> typelib
132         transformation is lossless (it's not)
133
134 2008-10-15  Tommi Komulainen  <tommi.komulainen@iki.fi>
135
136         * tests/Makefile.am: fix tests to compare xml to xml instead of
137         typelib to xml, and stop on error
138
139 2008-10-15  Tommi Komulainen  <tommi.komulainen@iki.fi>
140
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
144         duplication
145
146 2008-10-15  Tommi Komulainen  <tommi.komulainen@iki.fi>
147
148         Bug 556174 – parse types for lists etc.
149
150         * girepository/girparser.c (end_type_recurse):
151         * tests/boxed.gir:
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
155
156 2008-10-15  Tommi Komulainen  <tommi.komulainen@iki.fi>
157
158         * tests/enum.gir:
159         * tests/object.gir: remove trailing whitespace from inside
160         elements to match g-ir-generate output
161
162 2008-10-15  Tommi Komulainen  <tommi.komulainen@iki.fi>
163
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
167
168 2008-10-15  Tommi Komulainen  <tommi.komulainen@iki.fi>
169
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
176
177 2008-10-15  Tommi Komulainen  <tommi.komulainen@iki.fi>
178
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
189         open/close tags.
190
191 2008-10-15  Tommi Komulainen  <tommi.komulainen@iki.fi>
192
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
201
202 2008-10-15  Tommi Komulainen  <tommi.komulainen@iki.fi>
203
204         Bug 556400 – Fails to build on OS X 10.4
205
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
211
212 2008-10-15  Johan Bilien  <jobi@via.ecp.fr>
213
214         Bug 556433 – assume direction = out for int * parameters
215
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
221
222 2008-10-15  Johan Bilien  <jobi@via.ecp.fr>
223
224         * tests/scanner/annotation.c: fixed a few copy-paste errors
225
226 2008-10-14  Johan Bilien  <jobi@via.ecp.fr>
227
228         Bug 556323 – transfer-ownership is wrong for functions returning const
229         char *
230
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
234
235 2008-10-14  Johan Bilien  <jobi@via.ecp.fr>
236
237         * girepository/ginfo.c, girepository/girepository.h: add
238         g_union_info_find_method
239
240 2008-10-14  Colin Walters  <walters@verbum.org>
241
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.
246
247 2008-10-13  Jürg Billeter  <j@bitron.ch>
248
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:
254
255         Support fields in GObject structs
256
257 2008-10-13  Jürg Billeter  <j@bitron.ch>
258
259         * giscanner/ast.py: add signed integer and off_t to type_names
260
261 2008-10-12  Jürg Billeter  <j@bitron.ch>
262
263         * giscanner/girparser.py: Parse bits attribute of fields
264
265 2008-10-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
266
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
270         g_type_from_name()
271
272 2008-10-12  Johan Bilien  <jobi@via.ecp.fr>
273
274         * giscanner/girparser.py: actually add the parsed constant nodes
275
276 2008-10-12  Colin Walters  <walters@verbum.org>
277
278         * girepository/girepository.c: Don't cast DirEntry to Blob,
279         actually look it up by offset.
280
281 2008-10-12  Johan Bilien  <jobi@via.ecp.fr>
282
283         * giscanner/girparser.py: parse constant nodes in gir files
284
285 2008-10-12  Johan Bilien  <jobi@via.ecp.fr>
286
287         * giscanner/transformer.py: prefix for constants have an underscore,
288         so remove them as if they were functions, not objects.
289
290 2008-10-12  Johan Bilien  <jobi@via.ecp.fr>
291
292         * tests/scanner/foo-1.0-expected.gir: add constants to expected gir
293         file
294
295 2008-10-12  Colin Walters  <walters@verbum.org>
296
297         Initial patch from Jani Monoses.
298
299         * girepository/gtypelib.c: Fix inverted test for success
300         in version parsing.
301
302 2008-10-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
303
304         * tools/generate.c (write_callable_info): use "transfer-ownership"
305         attribute for return values
306
307 2008-10-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
308
309         * tools/generate.c (write_callable_info): move "transfer" and
310         "null-ok" attributes from <function> to <return-value> element
311
312 2008-10-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
313
314         * girepository/girparser.c (start_return_value): handle
315         "transfer-ownership" attribute
316
317 2008-10-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
318
319         * girepository/girparser.c (parse_param_transfer):
320         * tools/generate.c (write_callable_info): use "container" for
321         container/shallow ownership transfer (not "shallow")
322
323 2008-10-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
324
325         * girepository/girparser.c (parse_param_transfer,
326         start_parameter): Refactor handling of transfer=none/shallow/full
327         to separate function
328
329 2008-10-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
330
331         Bug 556048 – Crash in g_irepository_find_by_gtype
332
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
336
337 2008-10-12  Jürg Billeter  <j@bitron.ch>
338
339         * giscanner/girparser.py: Fix parsing transfer-ownership attribute
340         of <return-value>
341
342 2008-10-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
343
344         * girepository/gtypelib.h (RegisteredTypeBlob): make
345         'unregistered' one bit wide as everywhere else
346
347 2008-10-12  Jürg Billeter  <j@bitron.ch>
348
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:
355
356         Readd class records as workaround to not break Gtk typelib
357
358 2008-10-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
359
360         * tests/types/Makefile.am: fix typo in gitesttypes namespace
361
362 2008-10-12  Jürg Billeter  <j@bitron.ch>
363
364         * giscanner/glibtransformer.py: Don't generate <record> elements
365         for class structs.
366         * tests/scanner/*: Update test cases
367
368 2008-10-11  Colin Walters  <walters@verbum.org>
369
370         Bug 552858: versioning
371
372         This is a big patch.  You should probably remove your installation
373         tree to be cleaner.
374
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.
395
396 2008-10-11  Colin Walters  <walters@verbum.org>
397
398         * giscanner/scannerlexer.l (parse_gtkdoc): Don't lose
399         if we have mismatched parens.
400
401 2008-10-11  Lucas Rocha  <lucasr@gnome.org>
402
403         * giscanner/girparser.py (_parse_enumeration_bitfield): fix typo
404         on 'members' variable.
405
406 2008-10-11  Colin Walters  <walters@verbum.org>
407
408         Bug 555947 - update annotations syntax
409
410         * giscanner/ast.py: Default to None for transfer.  Remove
411         default transfers for container types; we require this to
412         be specified now.
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.
417         * tests/*: Update.
418
419 2008-10-11  Johan Bilien  <jobi@litl.com>
420
421         * giscanner/scannerparser.y: ignore non-UTF-8 string constants
422
423 2008-10-11  Johan Bilien  <jobi@litl.com>
424
425         Bug 552347: Parse #defines constants
426
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
435         constant
436
437 2008-10-11  Tommi Komulainen  <tommi.komulainen@iki.fi>
438
439         Bug 555946: Install a test module exercising all types, transfer
440         rules, etc.
441
442         * configure.ac
443         * tests/Makefile.am
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.
447
448 2008-10-11  Jürg Billeter  <j@bitron.ch>
449
450         Bug 552374: Const strings should be identified in the gir.
451
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
455
456 2008-10-11  Johan Dahlin  <johan@gnome.org>
457
458         * giscanner/girparser.py:
459         Also parse enums which are not glib types.
460
461 2008-10-11  Lucas Rocha  <lucasr@gnome.org>
462
463         Bug 552370: add one more test for unsigned as a type, not as
464         a type qualifier.
465
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.
469
470 2008-10-11  Andreas Rottmann  <a.rottmann@gmx.at>
471
472         Bug 555712: Struct and union issues
473
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
478         bit width).
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).
483         * tests/*: Updated.
484
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.
489         * tests/*: Updated.
490
491 2008-10-11  Jürg Billeter  <j@bitron.ch>
492
493         Bug 552370: unsigned not scanned properly
494
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
500
501 2008-10-11  Lucas Rocha  <lucasr@gnome.org>
502
503         Bug 554854: The --typelib-xml and --inject options should reuse
504         giscanner parser/writer.
505
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.
515
516 2008-10-11  Lucas Rocha  <lucasr@gnome.org>
517
518         Bug 552376: scanner generates wrong names for enum members when
519         there's no defined gtype.
520
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
527
528 2008-10-10  Lucas Rocha  <lucasr@gnome.org>
529
530         Bug 555293: append library_paths to LPATH env variable to work
531         around a bug in find_library when using ldconfig.
532
533         * tools/g-ir-scanner (main): ditto.
534
535 2008-10-09  Lucas Rocha  <lucasr@gnome.org>
536
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.
541
542 2008-10-06  Lucas Rocha  <lucasr@gnome.org>
543
544         Bug 555294: Add support for multiple shared libraries per typelib.
545
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
550         g_typelib_symbol. 
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
556         one of its modules.
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.
559
560 2008-10-06  Colin Walters  <walters@verbum.org>
561
562         * giscanner/transformer.py: Parse length= annotation as
563         a parameter name, not a raw int.
564         * tests/*: Update.
565
566 2008-10-03  Colin Walters  <walters@verbum.org>
567
568         Bug 551744: Non-GObject types aren't aggregating ctors and methods
569
570         * girepository/gtypelib.c: Allow ctors/methods on struct,union,
571         and boxed.
572         * giscanner/glibtransformer.py: Ditto, and GLibBoxed is also a
573         registered type.
574         * tests/*: Extend.
575
576 2008-10-03  Colin Walters  <walters@verbum.org>
577
578         Bug 554576: scan problem with ev_selection_render_selection()
579
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
586         to write a test for.
587
588 2008-10-03  Lucas Rocha  <lucasr@gnome.org>
589
590         * giscanner/girwriter.py (_parser_member): fix the last parameter of
591         GLibEnumMember constructor as it should be the enum member nick.
592
593 2008-10-02  Colin Walters  <walters@verbum.org>
594
595         Bug 552961: remove this parameter for methods
596
597         * giscanner/glibtransformer.py: Delete this parameter; it is
598         redundant.
599         * girepository/ginvoke.c: Insert this parameter for methods.
600         * girepository/gtypelib.c: Remove no longer needed verification of
601         method this parameter.
602         * tests/*: Update.
603
604 2008-09-30  Dan Winship  <danw@gnome.org>
605
606         Bug 554490: g-ir-scanner gets confused by '\\'
607
608         * giscanner/scannerlexer.l (chartext, stringtext): fix use of
609         backslashes so it will correctly parse '\\' and "\\"
610
611         * tests/scanner/annotation.c: add a use of '\\' to make sure that
612         this stays fixed
613
614         * giscanner/glibtransformer.py (GLibTransformer.count_type): typo
615
616 2008-10-02  Colin Walters  <walters@verbum.org>
617
618         bug 552393: Note variadic functions
619
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
625         to varargs type.
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.
629
630 2008-10-02  Colin Walters  <walters@verbum.org>
631
632         Bug 554632: type tag for GType
633
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
640         the GObject.gir.
641         * tools/generate.c: Remove hardcoded type list.
642         * test/* update.
643
644 2008-09-30  Dan Winship  <danw@gnome.org>
645
646         Bug 554521: scanner generates wrong names for enum members with
647         full type name prefix
648
649         * giscanner/utils.py (strip_common_prefix): Fix this to strip the
650         right amount when the entire "first" string is a prefix of
651         "second"
652
653         * tests/scanner/foo.h (FooEnumFullname):
654         * tests/scanner/foo-expected.gir: test that
655
656 2008-09-29  Colin Walters  <walters@verbum.org>
657
658         Bug 552380: Array parameters should be marked in the gir
659
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.
674         * tests/*: Update.
675
676 2008-09-27  Colin Walters  <walters@verbum.org>
677
678         * tools/g-ir-scanner: Add --inject option.
679
680 2008-09-25  Colin Walters  <walters@verbum.org>
681
682         Remove non-repository types from GIR
683
684         * giscanner/ast.py: The canonical name is 'utf8', not
685         'string'.
686         * giscanner/glibast.py: A few more glib type mappings.
687         * girepository/girparser.c: We only parse repository types.
688         * tests/*.gir: Update.
689
690 2008-09-23  Colin Walters  <walters@verbum.org>
691
692         Bug 552566: Add time_t type
693
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
696         in a nice way.
697
698 2008-09-19  Colin Walters  <walters@verbum.org>
699
700     Bug 552390: Handle capitialization like "DBus" more robustly
701
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.
705
706 2008-09-19  Colin Walters  <walters@verbum.org>
707
708     Add check to make sure we're not hitting out unresolved types
709
710     Validate the "this" argument for methods
711
712     Remove heuristic matching of methods to classes based on prefix
713
714     It was a broken hack that dated from when we handled underscoring
715     and capitalization conventions less well.
716
717 2008-09-18  Colin Walters  <walters@verbum.org>
718
719     Bug 522384: Use SHLIB_SUFFIX intead of G_MODULE_SUFFIX for Darwin
720
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.
724
725 2008-09-15  Johan Dahlin  <johan@gnome.org>
726
727         * giscanner/sourcescanner.py (SourceType.type_qualifier): Add
728         a wrapper for type_qualifier as well.
729
730 2008-09-15  Colin Walters  <walters@verbum.org>
731
732         http://bugzilla.gnome.org/show_bug.cgi?id=552065
733
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
740         on functions.
741         * tests/scanner/*: Add a Deprecated test.
742
743 2008-09-14  Tor Lillqvist  <tml@novell.com>
744
745         * tests/scanner/Makefile.am (%.typelib): Use $(EXEEXT).
746
747 2008-09-14  Colin Walters  <walters@verbum.org>
748
749         * giscanner/glibtransformer.py: Ignore functions with 
750         leading _.
751
752 2008-09-12  Colin Walters  <walters@verbum.org>
753
754         * giscanner/glibtransformer.py: Accept Gtk.Type as GType.
755
756 2008-09-12  Colin Walters  <walters@verbum.org>
757
758         * giscanner/ast.py: Bind pid_t to INT for vte.
759
760 2008-09-12  Colin Walters  <walters@verbum.org>
761
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.
765
766 2008-09-12  Colin Walters  <walters@verbum.org>
767
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.
775
776 2008-09-11  Colin Walters  <walters@verbum.org>
777
778         http://bugzilla.gnome.org/show_bug.cgi?id=551737
779
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.
784
785 2008-09-09  Owen Taylor  <otaylor@redhat.com>
786
787         * docs/typelib-format.txt: Wether => Whether
788
789 2008-09-08  Colin Walters  <walters@verbum.org>
790
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.
795         * tests/*: Update.
796
797 2008-09-07  Colin Walters  <walters@verbum.org>
798
799         * giscanner/cgobject.py: Add comment.
800
801 2008-09-07  Colin Walters  <walters@verbum.org>
802
803         * giscanner/cgobject.py: Also call g_thread_init.
804
805 2008-09-07  Colin Walters  <walters@verbum.org>
806
807         * giscanner/transformer.py: Fix regression by not
808         stripping prefix before stripping namespace for unions
809         either.
810
811 2008-09-06  Colin Walters  <walters@verbum.org>
812
813         * giscanner/transformer.py: If a namespace contains
814         multiple caps, try stripping both gnomekeyring_ and
815         gnome_keyring_.
816
817 2008-09-07  Johan Dahlin  <johan@gnome.org>
818
819         Bug 551162 – giscanner does not recognize asm and __asm__
820         * giscanner/scannerlexer.l:
821         Patch by Jani Monoses.
822
823 2008-09-06  Colin Walters  <walters@verbum.org>
824
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
832         format.
833         * giscanner/girwriter.py: Write out new
834         XML format.
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.
842         * tests/*: Update.
843         * tools/generate.c: Write out new format.
844
845 2008-09-06  Johan Dahlin  <johan@gnome.org>
846
847         * giscanner/grealpath.h: Include stdlib.h
848
849         * docs/g-ir-generate.1: Remove leading %
850
851 2008-09-01  Colin Walters  <walters@verbum.org>
852
853         * girepository/girparser.c: Look at c:type to determine
854         whether or not an item is a pointer.
855
856 2008-09-01  Johan Dahlin  <johan@gnome.org>
857
858         * tests/scanner/Makefile.am:
859         Set PYTHONPATH so the scanner can run
860         even if you didn't install anything.
861
862 2008-09-01  Johan Dahlin  <johan@gnome.org>
863
864         * configure.ac:
865         Post-release version bump
866
867 === 0.5.0 ===
868 2008-09-01  Johan Dahlin  <johan@gnome.org>
869
870         * NEWS: Update
871
872 2008-08-31  Colin Walters  <walters@verbum.org>
873
874         * giscanner/glibtransformer.py: Quiet info
875         prints for now.
876
877 2008-08-31  Johan Dahlin  <johan@gnome.org>
878
879         * configure.ac:
880         Bump version to 0.5.0
881
882 2008-08-31  Colin Walters  <walters@verbum.org>
883
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.
887         * tests/ Update.
888
889 2008-08-31  Johan Dahlin  <johan@gnome.org>
890
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.
897
898 2008-08-31  Johan Dahlin  <johan@gnome.org>
899
900         * giscanner/glibtransformer.py:
901         Clean up a huge if. Do not add methods or constructors
902         to enums/flags.
903         * giscanner/utils.py:
904         second might be longer than first, check that.
905
906 2008-08-31  Johan Dahlin  <johan@gnome.org>
907
908         * gir/Makefile.am:
909         Add a GModule.gir
910
911 2008-08-31  Colin Walters  <walters@verbum.org>
912
913         * girepository/girparser.c: Don't lose if we
914         have no includedirs
915
916 2008-08-31  Colin Walters  <walters@verbum.org>
917
918         * giscanner/glibtransformer.py: Look for libtool
919         library in current directory
920         * tests/scanner - Update.
921
922 2008-08-30  Colin Walters  <walters@verbum.org>
923
924         * docs/typelib-format.txt: Add a guint32
925         for dependencies.
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
938         API.
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
943         dependencies.
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.
950
951 2008-08-30  Colin Walters  <walters@verbum.org>
952
953         * giscanner/glibtransformer.py: Reduce warning noise.
954
955 2008-08-29  Colin Walters  <walters@verbum.org>
956
957         * girepository/ginfo.c: Add some assertions regarding
958         refcounts, just to be sure.
959         * giscanner/glibtransformer.py: Blacklist a few more
960         odd Gio methods.
961
962 2008-08-29  Colin Walters  <walters@verbum.org>
963
964         * giscanner/glibtransformer.py: Blacklist a few
965         functions that use GError oddly
966
967 2008-08-29  Colin Walters  <walters@verbum.org>
968
969         * girepository/gtypelib.c: Don't crash if no
970         shlib is embedded
971
972 2008-08-29  Colin Walters  <walters@verbum.org>
973
974         * girepository/girparser.c: Handle chains of aliases
975         across modules by ensuring we fully qualify aliases
976         from includes.
977
978 2008-08-29  Colin Walters  <walters@verbum.org>
979
980         * girepository/girparser.c: Don't search aliases
981         for basic types.
982
983 2008-08-29  Colin Walters  <walters@verbum.org>
984
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.
989
990 2008-08-29  Colin Walters  <walters@verbum.org>
991
992         * girepository/gtypelib.c: Add more context
993         during validate.
994
995 2008-08-29  Colin Walters  <walters@verbum.org>
996
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
1004         generates).
1005         * tests/ - Update.
1006         * tools/generate.c: Generate canonical form.
1007
1008 2008-08-29  Johan Dahlin  <johan@gnome.org>
1009
1010         * giscanner/config.py.in:
1011         Use datarootdir instead of datadir to avoid
1012         an autoconf warning.
1013
1014 2008-08-29  Johan Dahlin  <johan@gnome.org>
1015
1016         * README:
1017         * TODO:
1018         * examples/gdk-pixbuf.gidl:
1019         * libffi.pc.in:
1020         Update and remove old cruft.
1021
1022 2008-08-29  Johan Dahlin  <johan@gnome.org>
1023
1024         * Makefile.am:
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.
1029
1030 2008-08-29  Johan Dahlin  <johan@gnome.org>
1031
1032         * docs/g-ir-scanner.1: Document
1033
1034         * giscanner/Makefile.am:
1035         * giscanner/gidlparser.py:
1036         * giscanner/gidlwriter.py:
1037         * tools/g-ir-scanner:
1038         Remove gidl support.
1039
1040 2008-08-28  Colin Walters  <walters@verbum.org>
1041
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
1047         locate_gir.
1048
1049 2008-08-28  Colin Walters  <walters@verbum.org>
1050
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
1055         the typelibs.
1056         * tools/compiler.c: Add --includedir option.
1057         * giscanner/ast.py: Map size/ssize to types
1058         too.
1059
1060 2008-08-28  Tor Lillqvist  <tml@novell.com>
1061
1062         Make check now runs successfully on Windows.
1063
1064         * tools/compiler.c (write_out_typelib): Use binary mode for output
1065         file on Windows.
1066
1067         * girepository/girnode.c: Don't print NULL strings.
1068
1069         * tests/invoke/Makefile.am
1070         * tests/scanner/Makefile.am: Use -no-undefined on Windows to
1071         convince libtool to build shared libraries.
1072
1073         * tests/invoke/invoke.c: Don't needlessly include <dlfcn.h>. Use
1074         g_assert() instead of printing out expected errors.
1075
1076 2008-08-28  Tor Lillqvist  <tml@novell.com>
1077
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.
1082
1083 2008-08-28  Johan Dahlin  <johan@gnome.org>
1084
1085         * Makefile.am:
1086         * configure.ac:
1087         * gir/Makefile.am:
1088         * giscanner/Makefile.am:
1089         * tests/Makefile.am:
1090         * tests/scanner/Makefile.am:
1091         Make distcheck pass.
1092
1093 2008-08-27  Johan Dahlin  <johan@gnome.org>
1094
1095         * giscanner/Makefile.am:
1096         Only send in -no-undefined on Win32 as it breaks on MacOS X.
1097
1098 2008-08-27  Tor Lillqvist  <tml@novell.com>
1099
1100         Make g-ir-scanner work on Windows. Still problems with the typelib
1101         code. Changes okayed by jdahlin.
1102
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
1106         
1107         * girepository/Makefile.am: Use -no-undefined so that libtool
1108         agrees to build a shared library on Windows.
1109
1110         * girepository/girparser.c (backtrace_stderr): No backtrace() on
1111         Windows. Empty implementation on Windows so far.
1112
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.
1117
1118         * tools/Makefile.am: Reorder libraries into proper logical
1119         dependency order.
1120
1121         * tools/generate.c: Don't include <dlfcn.h>, not used.
1122
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
1126         installed.
1127
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__.
1131
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.
1136
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
1144         code uses.
1145
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.
1150
1151         * giscanner/cgobject.py: Use correct library name for the gobject
1152         DLL on Windows.
1153
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.
1159
1160         Must pass CPPFLAGS to g-ir-scanner when building GLib.gir so that
1161         libintl.h is found.
1162
1163 2008-08-26  Colin Walters  <walters@verbum.org>
1164
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
1169         .jars there.
1170         * gir/Makefile.am: Install there.
1171
1172 2008-08-26  Colin Walters  <walters@verbum.org>
1173
1174         * girepository/gtypelib.c (_g_typelib_init): Also
1175         use G_MODULE_SUFFIX instead of hardcoding .so.
1176
1177 2008-08-26  Colin Walters  <walters@verbum.org>
1178
1179         * girepository/gtypelib.c (_g_typelib_init): Free
1180         string in the right place.
1181
1182 2008-08-26  Colin Walters  <walters@verbum.org>
1183
1184         * girepository/gtypelib.c (_g_typelib_init): Handle
1185         both .la and .so names; this works better in the
1186         uninstalled library case.
1187
1188 2008-08-26  Johan Dahlin  <johan@gnome.org>
1189
1190         * gir/Makefile.am:
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.
1199
1200 2008-08-25  Colin Walters  <walters@verbum.org>
1201
1202         * giscanner/glibtransformer.py: Always print
1203         statistics.
1204
1205 2008-08-25  Colin Walters  <walters@verbum.org>
1206
1207         * giscanner/glibtransformer.py: Skip over
1208         interfaces we don't know.
1209
1210 2008-08-25  Colin Walters  <walters@verbum.org>
1211
1212         * girepository/girparser.c: Parse new implements
1213         syntax, drop gapi one.
1214         * tests/object.gir: Update.
1215         * tools/generate.c: Generate new syntax.
1216
1217 2008-08-25  Colin Walters  <walters@verbum.org>
1218
1219         * giscanner/ast.py: Add interfaces property
1220         to class.
1221         * giscanner/girwriter.py: Write out implemented
1222         interfaces.
1223         * giscanner/glibtransformer.py: Introspect
1224         implemented interfaces.
1225         * tests/scanner/*: Make FooObject implement
1226         FooInterface.
1227
1228 2008-08-25  Colin Walters  <walters@verbum.org>
1229
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.
1234
1235 2008-08-24  Colin Walters  <walters@verbum.org>
1236
1237         * tools/g-ir-scanner: Filter out unknown options from
1238         pkg-config files.
1239
1240 2008-08-24  Colin Walters  <walters@verbum.org>
1241
1242         * giscanner/glibtransformer.py: Fail with better
1243         error if we can't find library.
1244
1245 2008-08-24  Colin Walters  <walters@verbum.org>
1246
1247         * tools/g-ir-scanner: Use subprocess instead of
1248         commands, works on Windows and avoids the evil
1249         shell on Unix.
1250
1251 2008-08-24  Colin Walters  <walters@verbum.org>
1252
1253         * giscanner/glibtransformer.py: Skip over
1254         g_object_get_type from GLib trunk.
1255
1256 2008-08-24  Colin Walters  <walters@verbum.org>
1257
1258         * girepository/girepository.c (g_irepository_require): 
1259         Don't open shared library here; we already do it
1260         in gtypelib.c.
1261
1262 2008-08-24  Colin Walters  <walters@verbum.org>
1263
1264         * girepository/gtypelib.c: Add context stack so
1265         when we get an error we can print out nicely
1266         where it is.
1267
1268 2008-08-24  Johan Dahlin  <johan@gnome.org>
1269
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.
1273         Avoid huge ifs.
1274
1275 2008-08-24  Johan Dahlin  <johan@gnome.org>
1276
1277         * girepository/girparser.c (start_function):
1278         Remove left-over code, checking type of function.
1279
1280 2008-08-23  Colin Walters  <walters@verbum.org>
1281
1282         * giscanner/config.py: Define DATADIR.
1283         * giscanner/transformer.py: Look in DATADIR.
1284
1285 2008-08-23  Colin Walters  <walters@verbum.org>
1286
1287         * girepository/gtypelib.c: Check constructor
1288         returns.
1289         * girepository/girnode.c: Small tweaks.
1290         * girepository/ginfo.c: Calculate signature offsets
1291         more robustly.
1292         * girepository/girparser.c: Remove duplicate
1293         start_boxed.
1294         * giscanner/glibtransformer.py: Avoid marking
1295         functions which return a basic type as
1296         constructors.
1297
1298 2008-08-23  Colin Walters  <walters@verbum.org>
1299
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
1308         args for scanner.
1309         * *-expected.gir: Add expected includes.
1310
1311 2008-08-23  Johan Dahlin  <johan@gnome.org>
1312
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)
1318
1319 2008-08-22  Colin Walters  <walters@verbum.org>
1320
1321         * girepository/girnode.c: Don't hardcode integers,
1322         use GITypeTag.
1323
1324 2008-08-22  Johan Dahlin  <johan@gnome.org>
1325
1326         * giscanner/sourcescanner.py:
1327         Check for ../gobject-introspection-1.0.pc.in to determine
1328         if we run installed or uninstalled.
1329
1330 2008-08-22  Johan Dahlin  <johan@gnome.org>
1331
1332         * gir/Makefile.am:
1333         * giscanner/sourcescanner.py:
1334         Send in undefs/defines via writing it directly to stdin
1335         of cpp instead of via arguments.
1336
1337 2008-08-22  Colin Walters  <walters@verbum.org>
1338
1339         * tools/generate.c, tools/compiler.c: Default
1340         to --raw.
1341         * all Makefile.am: Update.
1342
1343 2008-08-22  Colin Walters  <walters@verbum.org>
1344
1345         * girepository/girparser.c: Pass through
1346         recursive types.  Avoid overwriting errors.
1347         * giscanner/xmlwriter.py: Always write the
1348         XML header.
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
1354         header.
1355         * tools/g-ir-scanner: Accept --typelib-xml
1356         option.
1357         * tools/generate.c: Better defaults for transfer.
1358
1359 2008-08-22  Johan Dahlin  <johan@gnome.org>
1360
1361         * configure.ac:
1362         * gir/Makefile.am:
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.
1369
1370 2008-08-22  Johan Dahlin  <johan@gnome.org>
1371
1372         * gir/Makefile.am:
1373         Replace glibconfig.h with our own, do some replacement
1374         for CPP/C features we do not support
1375
1376 2008-08-22  Colin Walters  <walters@verbum.org>
1377
1378         * tools/generate.c (write_callable_info): Fix unref
1379         sequence.
1380
1381 2008-08-22  Colin Walters  <walters@verbum.org>
1382
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
1386         sub-elements.
1387
1388 2008-08-21  Colin Walters  <walters@verbum.org>
1389
1390         * tests/scanner/drawable-expected.gir,
1391         * tests/scanner/drawable.c,
1392         * tests/scanner/drawable.h:
1393         Add a method.
1394
1395 2008-08-21  Colin Walters  <walters@verbum.org>
1396
1397         * giscanner/glibtransformer.py: Compute prefix
1398         by searching through the symbol for bits
1399         rather than going directly from ctype; this fixes
1400         webkit_ namespace.
1401
1402 2008-08-21  Colin Walters  <walters@verbum.org>
1403
1404         * giscanner/glibtransformer.py: Also try squashing
1405         underscores from namespace, fixes webkit_web_view_new.
1406
1407 2008-08-21  Colin Walters  <walters@verbum.org>
1408
1409         * giscanner/glibtransformer.py: More ctor work,
1410         avoid having gtk_window_group_new end up under
1411         GtkWindow.
1412
1413 2008-08-21  Colin Walters  <walters@verbum.org>
1414
1415         * giscanner/glibtransformer.py: Much simpler approach
1416         of mapping uscored names to classes.
1417         * giscanner/utils.py: Remove unnecessary function.
1418
1419 2008-08-21  Johan Dahlin  <johan@gnome.org>
1420
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.
1424
1425 2008-08-21  Colin Walters  <walters@verbum.org>
1426
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.
1431
1432 2008-08-21  Colin Walters  <walters@verbum.org>
1433
1434         * girepository/girmodule.c (g_ir_module_build_typelib): 
1435         Revert change to increment header_size; we do that in
1436         write_string.
1437
1438 2008-08-21  Colin Walters  <walters@verbum.org>
1439
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
1449         better.
1450
1451 2008-08-21  Johan Dahlin  <johan@gnome.org>
1452
1453         * gir/Makefile.am (typelibs_DATA): Build and 
1454         install the Gio.typelib too
1455
1456         * girepository/gtypelib.c (_g_typelib_init):
1457         Use g_module_build_path to resolve the shlib name
1458
1459 2008-08-21  Colin Walters  <walters@verbum.org>
1460
1461         * gir/Makefile.am: CLEANFILES typelibs too.
1462
1463 2008-08-21  Johan Dahlin  <johan@gnome.org>
1464
1465         * giscanner/glibtransformer.py:
1466         Do not send .la files through find_library.
1467
1468 2008-08-21  Colin Walters  <walters@verbum.org>
1469
1470         * girepository/girparser.c (g_irepository_require):
1471         Fix one small leak in error case.
1472
1473 2008-08-21  Johan Dahlin  <johan@gnome.org>
1474
1475         * gir/Makefile.am:
1476         Parse glibconfig.h as well and install the compiled
1477         typelib
1478
1479 2008-08-21  Johan Dahlin  <johan@gnome.org>
1480
1481         * gir/Makefile.am:
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.
1486
1487 2008-08-21  Johan Dahlin  <johan@gnome.org>
1488
1489         * girepository/girparser.c (resolve_aliases):
1490         Remove compilation warnings
1491
1492 2008-08-21  Johan Dahlin  <johan@gnome.org>
1493
1494         * girepository/girepository.c (g_irepository_require):
1495         Rewrap and fix double free bug by leaking a bit.
1496
1497 2008-08-20  Colin Walters  <walters@verbum.org>
1498
1499         * girepository/girepository.c: Add new function
1500         g_irepository_get_typelib_path which tells
1501         us from where we loaded a namespace.
1502
1503 2008-08-20  Colin Walters  <walters@verbum.org>
1504
1505         * tests/scanner/*-expected.gir: Adjust for
1506         added shared-library.
1507         * giscanner/giwriter.py: Make pylint happy.
1508
1509 2008-08-20  Colin Walters  <walters@verbum.org>
1510
1511         * girepository/girmodule.c (g_ir_module_build_typelib):
1512         Calculate size correctly, avoid use-after-free.
1513
1514 2008-08-20  Colin Walters  <walters@verbum.org>
1515
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.
1524
1525         Refactor internals to look up typelibs for
1526         namespaces just-in-time, but we expect
1527         consumers to call g_irepository_require.
1528
1529         Also, add some docs.  No one has died from that
1530         before.
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
1536         probably.
1537
1538 2008-08-20  Colin Walters  <walters@verbum.org>
1539
1540         * girepository/girparser.py: And parse them.
1541
1542 2008-08-20  Johan Dahlin  <johan@gnome.org>
1543
1544         * giscanner/glibast.py: Add gshort/gushort types
1545
1546 2008-08-20  Colin Walters  <walters@verbum.org>
1547
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
1551         with .typelib.
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.
1556
1557 2008-08-20  Colin Walters  <walters@verbum.org>
1558
1559         * girepository/transformer.py: Suppress aliases whose
1560         name is a builtin.
1561         * girepository/ast.py: Define some more aliases.
1562
1563 2008-08-20  Colin Walters  <walters@verbum.org>
1564
1565         * girepository/girparser.c: Avoid alias infloops.
1566
1567 2008-08-20  Colin Walters  <walters@verbum.org>
1568
1569         * tests/scanner/foo-expected.gir: Fix expected list type.
1570
1571 2008-08-20  Johan Dahlin  <johan@gnome.org>
1572
1573         * giscanner/glibtransformer.py (GLibTransformer._resolve_type_name): 
1574         Add a workaround for #548689.
1575         We can now compile gtk!
1576
1577 2008-08-20  Colin Walters  <walters@verbum.org>
1578
1579         * giscanner/glibtransformer.py: Try to look up
1580         aliases using the c:type too.
1581
1582 2008-08-20  Colin Walters  <walters@verbum.org>
1583
1584         * girepository/girparser.c: Parse union fields.
1585
1586 2008-08-20  Johan Dahlin  <johan@gnome.org>
1587
1588         * giscanner/ast.py: Make time_t an alias for long
1589
1590         * gir/gio-2.0-good.gir:
1591         * gir/glib-2.0-good.gir:
1592         * gir/gobject-2.0-good.gir:
1593         Regnerate
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:
1599         Update tests.
1600
1601 2008-08-20  Johan Dahlin  <johan@gnome.org>
1602
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
1618
1619 2008-08-20  Johan Dahlin  <johan@gnome.org>
1620
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
1627
1628 2008-08-20  Johan Dahlin  <johan@gnome.org>
1629
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.
1639
1640 2008-08-20  Johan Dahlin  <johan@gnome.org>
1641
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
1647         a broken gir.
1648
1649 2008-08-19  Colin Walters  <walters@verbum.org>
1650
1651         * giscanner/transformer.py: Don't try
1652         to strip prefix before namespace.
1653
1654 2008-08-19  Johan Dahlin  <johan@gnome.org>
1655
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
1660         aliases.
1661
1662 2008-08-19  Johan Dahlin  <johan@gnome.org>
1663
1664         * giscanner/ast.py:
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.
1671
1672 2008-08-19  Johan Dahlin  <johan@gnome.org>
1673
1674         * tests/scanner/Foo-expected.gir:
1675         * tests/scanner/foo-object.h:
1676         Add a union testcase which the compiler currently
1677         barfs at.
1678
1679 2008-08-19  Johan Dahlin  <johan@gnome.org>
1680
1681         * gobject-introspection-1.0.pc.in:
1682         Add a g_ir_compiler variable
1683
1684 2008-08-19  Colin Walters  <walters@verbum.org>
1685
1686         * giscanner/ast.py: Rework types to be more closely
1687         based on GITypeTag.
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
1709         GLib/GObject.
1710
1711 2008-08-18  Johan Dahlin  <johan@gnome.org>
1712
1713         * gir/gio-2.0-good.gir:
1714         * gir/glib-2.0-good.gir:
1715         * gir/gobject-2.0-good.gir:
1716         Regenerate.
1717
1718 2008-08-18  Johan Dahlin  <johan@gnome.org>
1719
1720         * giscanner/ast.py:
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.
1733
1734 2008-08-18  Johan Dahlin  <johan@gnome.org>
1735
1736         * gir/Makefile.am:
1737         * giscanner/girparser.py:
1738         Set ctype of enums
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:
1743         Simplify this a bit
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
1749
1750 2008-08-18  Johan Dahlin  <johan@gnome.org>
1751
1752         * docs/global-module-registry.txt: Update
1753
1754         * tests/array.gir: Update with new type proposal
1755
1756         * girepository/girepository.c (g_type_tag_to_string):
1757         * girepository/girepository.h:
1758         * girepository/girnode.c (g_ir_node_get_full_size_internal),
1759         (find_entry_node):
1760         * girepository/girnode.h:
1761         Make enum serializing functions public. Clean up some whitespace.
1762
1763 2008-08-17  Johan Dahlin  <johan@gnome.org>
1764
1765         * docs/global-module-registry.txt:
1766         Add a document for an on disk module registry format
1767
1768 2008-08-17  Johan Dahlin  <johan@gnome.org>
1769
1770         * gir/Makefile.am:
1771         * gir/gio-2.0-good.gir:
1772         Add a gio gir.
1773
1774 2008-08-17  Johan Dahlin  <johan@gnome.org>
1775
1776         * gir/Makefile.am:
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.
1784
1785 2008-08-17  Colin Walters  <walters@verbum.org>
1786
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.
1794
1795 2008-08-17  Johan Dahlin  <johan@gnome.org>
1796
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.
1804
1805 2008-08-16  Johan Dahlin  <johan@gnome.org>
1806
1807         * giscanner/girparser.py:
1808         Parse enumeration/bitfield.
1809
1810 2008-08-16  Johan Dahlin  <johan@gnome.org>
1811
1812         * giscanner/girparser.py:
1813         Parse boxed types.
1814
1815 2008-08-16  Johan Dahlin  <johan@gnome.org>
1816
1817         * giscanner/glibtransformer.py:
1818         Resolve type names for alias targets
1819         * giscanner/transformer.py:
1820         Skip FILE* parameters fow now
1821
1822 2008-08-16  Johan Dahlin  <johan@gnome.org>
1823
1824         * gir/glib-2.0.gir:
1825         * gir/gobject-2.0.gir:
1826         Regenerate
1827
1828         * tests/scanner/Makefile.am:
1829         parser -> scanner
1830
1831 2008-08-15  Colin Walters  <walters@verbum.org>
1832
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 
1840         namespace.
1841
1842 2008-08-15  Colin Walters  <walters@verbum.org>
1843
1844         * giscanner/cgobject.py: Define yet more argument
1845         prototypes; fix prototype for g_type_fundamental.
1846
1847 2008-08-14  Johan Dahlin  <johan@gnome.org>
1848
1849         * tests/Makefile.am:
1850         * tests/constant.gir:
1851         * tests/gobject.gir:
1852         * tests/struct.gir:
1853         * tools/generate.c (write_struct_info):
1854         Fix generator for constant/gobject/struct
1855
1856 2008-08-14  Johan Dahlin  <johan@gnome.org>
1857
1858         * tests/Makefile.am:
1859         * tests/enum.gir:
1860         * tools/generate.c (write_enum_info):
1861         Fix generation of enum/bitfields
1862
1863 2008-08-14  Johan Dahlin  <johan@gnome.org>
1864
1865         * girepository/girparser.c (start_field), (start_constant),
1866         (start_type), (end_element_handler):
1867         Clear up constant parsing
1868
1869         * tests/object.gir:
1870         Update
1871
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.
1877
1878 2008-08-14  Johan Dahlin  <johan@gnome.org>
1879
1880         * girepository/girparser.c (start_type):
1881         Don't require c:type.
1882         * tests/Makefile.am:
1883         Test boxed.gir
1884         * tests/boxed.gir:
1885         Update, remove parts we don't support yet
1886         * tests/roundtrips.sh:
1887         Remove
1888         * tools/generate.c (write_type_info), (write_field_info),
1889         (write_callable_info), (write_struct_info):
1890         Make it emit proper gir.
1891
1892 2008-08-14  Johan Dahlin  <johan@gnome.org>
1893
1894         * giscanner/transformer.py:
1895         New internal function for adding a new node.
1896
1897 2008-08-14  Johan Dahlin  <johan@gnome.org>
1898
1899         * gir/Makefile.am:
1900         Define an internal _H_ variable so we skip parsing both
1901         i18n headers, only one is needed.
1902         * gir/glib-2.0.gir:
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'
1909
1910 2008-08-14  Colin Walters  <walters@verbum.org>
1911
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
1921         in here.
1922
1923 2008-08-14  Johan Dahlin  <johan@gnome.org>
1924
1925         * giscanner/girwriter.py:
1926         * giscanner/glibast.py:
1927         * giscanner/glibtransformer.py:
1928         * giscanner/transformer.py:
1929         * misc/pyflakes.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
1933         pyflakes.
1934
1935 2008-08-14  Johan Dahlin  <johan@gnome.org>
1936
1937         * giscanner/ast.py:
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.
1943
1944 2008-08-14  Johan Dahlin  <johan@gnome.org>
1945
1946         * giscanner/glibtransformer.py:
1947         * giscanner/utils.py:
1948         Refactor a bit, avoid isinstance and add a method
1949         for each type we parse.
1950
1951 2008-08-14  Johan Dahlin  <johan@gnome.org>
1952
1953         * giscanner/ast.py:
1954         * giscanner/girparser.py:
1955         * giscanner/glibtransformer.py:
1956         * tests/Makefile.am:
1957         Run pep8.py in make check, fix old errors.
1958
1959 2008-08-13  Colin Walters  <walters@verbum.org>
1960
1961         * giscanner/girparser.py: Parse records.
1962
1963 2008-08-13  Colin Walters  <walters@verbum.org>
1964
1965         * gir/Makefile.am: Install again.
1966         * gir/gobject-2.0.gir: Add some more bits.
1967
1968 2008-08-13  Colin Walters  <walters@verbum.org>
1969
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.
1977
1978 2008-08-13  Johan Dahlin  <johan@gnome.org>
1979
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.
1984
1985 2008-08-13  Johan Dahlin  <johan@gnome.org>
1986
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.
1992
1993 2008-08-13  Colin Walters  <walters@verbum.org>
1994
1995         * tests/scanner/Foo-expected.gir, tests/scanner/utility-expected.gir:
1996         Object is in GObject namespace.
1997
1998 2008-08-13  Colin Walters  <walters@verbum.org>
1999
2000         * giscanner/girparser.py: Fix processing of functions
2001         from last commit.
2002
2003 2008-08-13  Colin Walters  <walters@verbum.org>
2004
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
2009         from includes.
2010
2011 2008-08-13  Johan Dahlin  <johan@gnome.org>
2012
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
2018
2019 2008-08-12  Colin Walters  <walters@verbum.org>
2020
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
2031         second pass.
2032         * gir/Makefile.am: Don't install gobject-2.0.gir; we want that to come
2033         from gir-repository.
2034
2035 2008-08-12  Colin Walters  <walters@verbum.org>
2036
2037         * giscanner/glibtransformer.py: Resolve typedefs (e.g. AtkAttributeSet -> GSList).
2038         Correctly do subclasseing in 2nd pass resolution.  Handle callbacks in structure
2039         fields.
2040         * giscanner/transformer.py: Record typedefs and expose public API for resolving
2041         them.
2042         * tests/scanner/Foo-expected.gir: Fix expected callback types.
2043
2044 2008-08-12  Colin Walters  <walters@verbum.org>
2045
2046         * giscanner/glibtransformer.py: Also transform object properties.
2047
2048 2008-08-12  Colin Walters  <walters@verbum.org>
2049
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.
2054
2055 2008-08-12  Colin Walters  <walters@verbum.org>
2056
2057         * girepository/girparser.c: Handle 'any'.
2058         * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
2059         Add test for void *.
2060
2061 2008-08-12  Colin Walters  <walters@verbum.org>
2062
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.
2066
2067 2008-08-12  Colin Walters  <walters@verbum.org>
2068
2069         * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
2070         Add enum return value.
2071         * giscanner/glibtransformer.py: Transform function return types
2072         too.
2073
2074 2008-08-12  Colin Walters  <walters@verbum.org>
2075
2076         * tests/scanner/Makefile.am: Dep .gir files on scanner
2077         sources too.  Also remove @ so we see scanner invocations.
2078
2079 2008-08-12  Colin Walters  <walters@verbum.org>
2080
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.
2085
2086 2008-08-10  Colin Walters  <walters@verbum.org>
2087
2088         * tests/roundtrips.sh: Use the correct tests.
2089
2090 2008-08-10  Colin Walters  <walters@verbum.org>
2091
2092         * giscanner/cgobject.py: Declare/wrap a few more functions.
2093         Fix parameter types for g_object_new and g_type_fundamental.
2094
2095 2008-08-10  Colin Walters  <walters@verbum.org>
2096
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.
2101
2102 2008-08-09  Johan Dahlin  <johan@gnome.org>
2103
2104         * giscanner/__init__.py:
2105         * giscanner/ast.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:
2119
2120         PEP8ify
2121
2122 2008-08-09  Johan Dahlin  <johan@gnome.org>
2123
2124         * relaxng/api.xml:
2125         * relaxng/c-types.xml:
2126         * relaxng/g-types.xml:
2127         * relaxng/relaxng.rng:
2128         * relaxng/util.xml:
2129         Remove outdated relaxng schemas.
2130
2131 2008-08-09  Johan Dahlin  <johan@gnome.org>
2132
2133         * *.[ch]:
2134         Rename metadata to typelib in variable names,
2135         comments and apis.
2136
2137 2008-08-09  Johan Dahlin  <johan@gnome.org>
2138
2139         * tools/scanner.c:
2140         * tools/scanner.h:
2141         Remove old C scanner, which got rewritten in python.
2142
2143 2008-08-09  Johan Dahlin  <johan@gnome.org>
2144
2145         * girepository/Makefile.am:
2146         * tools/Makefile.am:
2147         * tools/girmodule.c:
2148         * tools/girmodule.h:
2149         * tools/girnode.c:
2150         * tools/girnode.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
2156
2157 2008-08-09  Johan Dahlin  <johan@gnome.org>
2158
2159         * tests/Makefile.am:
2160         * tests/array.test:
2161         * tests/boxed.test:
2162         * tests/constant.test:
2163         * tests/enum.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:
2170         * tests/types.test:
2171         * tests/union.test:
2172         * tests/xref1.test:
2173         * tests/xref2.test:
2174         Rename *.test to *.gir
2175
2176 2008-08-09  Johan Dahlin  <johan@gnome.org>
2177
2178         * configure.ac:
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
2189
2190 2008-08-08  Colin Walters  <walters@verbum.org>
2191
2192         * tests/roundtrips.sh: Use local .gir files again.
2193
2194 2008-08-08  Colin Walters  <walters@verbum.org>
2195
2196         * tests/invoke/Makefile.am: .gir file depends on libtool
2197         library.
2198
2199 2008-08-08  Colin Walters  <walters@verbum.org>
2200
2201         * tools/girnode.c: Pass through parent node so we can
2202         print the node whose child is NULL, if that occurs.
2203
2204 2008-08-08  Johan Dahlin  <johan@gnome.org>
2205
2206         * tests/Makefile.am:
2207         Disable roundtrip tests which are not yet working
2208         * tests/invoke/testfns.gir:
2209         Rewrite as gir.
2210
2211 2008-08-08  Johan Dahlin  <johan@gnome.org>
2212
2213         * giscanner/girwriter.py:
2214         type -> ntype
2215         * giscanner/glibast.py:
2216         * giscanner/glibtransformer.py:
2217         Swap order of members, to keep it consistent with
2218         base enum class
2219
2220 2008-08-08  Johan Dahlin  <johan@gnome.org>
2221
2222         * girepository/gtypelib.c (validate_header):
2223         * girepository/gtypelib.h:
2224         * giscanner/ast.py:
2225         * giscanner/girwriter.py:
2226         * giscanner/sourcescanner.c (gi_source_symbol_ref),
2227         (gi_source_symbol_unref):
2228         * tests/array.test:
2229         * tests/boxed.test:
2230         * tests/constant.test:
2231         * tests/enum.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:
2242         * tests/types.test:
2243         * tests/union.test:
2244         * tests/xref1.test:
2245         * tests/xref2.test:
2246         * tools/Makefile.am:
2247         * tools/compiler.c (main):
2248         * tools/generate.c (write_callable_info), (write_function_info),
2249         (write_repository):
2250         * tools/gidlmodule.c:
2251         * tools/gidlmodule.h:
2252         * tools/gidlnode.c:
2253         * tools/gidlnode.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.
2273
2274 2008-07-26  Colin Walters  <walters@verbum.org>
2275
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.
2280
2281 2008-07-24  Colin Walters  <walters@verbum.org>
2282
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.
2288
2289 2008-07-08  Jürg Billeter  <j@bitron.ch>
2290
2291         * giscanner/glibast.py:
2292
2293         Fix typo
2294
2295 2008-06-21  Johan Dahlin  <jdahlin@async.com.br>
2296
2297         * giscanner/girparser.py (GIRParser._parse_api): Ignore a few
2298         more tags
2299
2300 2008-06-20  Johan Dahlin  <jdahlin@async.com.br>
2301
2302         * giscanner/ast.py:
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.
2309         Add test case.
2310
2311 2008-06-19  Johan Dahlin  <jdahlin@async.com.br>
2312
2313         * giscanner/ast.py:
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.
2321
2322 2008-06-19  Rob Taylor  <rob.taylor@codethink.co.uk>
2323
2324         * AUTHORS:
2325         Update authors
2326
2327 2008-06-08  Philip Van Hoof  <pvanhoof@gnome.org>
2328
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:
2338         * tools/compiler.c:
2339         * tools/gidlmodule.c:
2340         * tools/gidlnode.c
2341         * tools/generate.c:
2342         * tools/gidlmodule.h:
2343         * tools/gidlparser.c:
2344
2345         Renamed GMetadata to GTypelib
2346
2347 2008-06-07  Johan Dahlin  <jdahlin@async.com.br>
2348
2349         * giscanner/xmlwriter.py:
2350         Improve line wrapping when > 79 charaters
2351
2352 2008-06-05  Jürg Billeter  <j@bitron.ch>
2353
2354         * giscanner/ast.py:
2355         * giscanner/girwriter.py:
2356         * giscanner/transformer.py:
2357         Use <type> element for field types
2358         * tests/parser/Foo-expected.gir:
2359         Update testcase
2360
2361 2008-06-04  Johan Dahlin  <jdahlin@async.com.br>
2362
2363         * giscanner/glibtransformer.py:
2364         Fix a bug which prevented GdkEvent from being generated
2365
2366 2008-06-03  Johan Dahlin  <jdahlin@async.com.br>
2367
2368         * giscanner/Makefile.am:
2369         * giscanner/ast.py:
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
2377
2378 2008-05-31  Johan Dahlin  <jdahlin@async.com.br>
2379
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:
2386         Ignore some more
2387         * giscanner/transformer.py:
2388         Improve parsing of struct members.
2389         * tests/parser/foo-object.h:
2390         Add a new testcase
2391
2392 2008-05-31  Johan Dahlin  <jdahlin@async.com.br>
2393
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
2402         us to get further.
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
2407
2408 2008-05-31  Johan Dahlin  <jdahlin@async.com.br>
2409
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.
2414
2415         * Makefile.am:
2416         * configure.ac:
2417         * girepository/Makefile.am:
2418         * giscanner/transformer.py:
2419         * gobject-introspection-1.0.pc.in:
2420         * gobject-introspection.pc.in:
2421         * tools/Makefile.am:
2422
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.
2427
2428 2008-05-31  Johan Dahlin  <jdahlin@async.com.br>
2429
2430         * giscanner/giscannermodule.c (symbol_get_ident): Prevent
2431         a crash when symbol->indent is NULL.
2432
2433         * giscanner/sourcescanner.py (ctype_name): Add ctype_name,
2434         a function to convert a CTYPE symbol to a string
2435
2436 2008-05-24  Johan Dahlin  <jdahlin@async.com.br>
2437
2438         * giscanner/ast.py:
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
2449
2450 2008-05-08  Johan Dahlin  <johan@gnome.org>
2451
2452         * giscanner/glibtransformer.py:
2453         * giscanner/transformer.py:
2454         Move namespace stripping glibtransformer->transformer
2455
2456 2008-05-08  Johan Dahlin  <johan@gnome.org>
2457
2458         * giscanner/ast.py:
2459         * giscanner/girwriter.py:
2460         * giscanner/glibtransformer.py:
2461         * giscanner/transformer.py:
2462         * tools/g-ir-scanner:
2463         Introduce a namespace ast node
2464
2465 2008-05-05  Johan Dahlin  <johan@gnome.org>
2466
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.
2472
2473 2008-05-03  Johan Dahlin  <johan@gnome.org>
2474
2475         * giscanner/glibtransformer.py:
2476         * tools/g-ir-scanner:
2477         Handle missing parameters better, allow - and + in .la dlname
2478         filenames.
2479
2480 2008-05-03  Johan Dahlin  <johan@gnome.org>
2481
2482         * giscanner/__init__.py:
2483         * giscanner/ast.py:
2484         * giscanner/girwriter.py:
2485         * giscanner/glibtransformer.py:
2486         * giscanner/transformer.py:
2487         Parse struct fields properly, improve debugging.
2488
2489 2008-04-29  Johan Dahlin  <johan@gnome.org>
2490
2491         * giscanner/ast.py:
2492         * giscanner/girwriter.py:
2493         * giscanner/transformer.py:
2494         * tests/parser/Foo-expected.gir:
2495         * TODO:
2496         Use transfer-ownership everywhere, to mark ownership/calle/caller etc.
2497
2498 2008-04-29  Johan Dahlin  <jdahlin@async.com.br>
2499
2500         * Makefile.am:
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
2505
2506 2008-04-29  Johan Dahlin  <jdahlin@async.com.br>
2507
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.
2516
2517 2008-04-28  Johan Dahlin  <johan@gnome.org>
2518
2519         * giscanner/xmlwriter.py: Calculate the line length properly,
2520         include the provided extra indentation in the calculation, really.
2521
2522 2008-04-28  Johan Dahlin  <jdahlin@async.com.br>
2523
2524         * giscanner/ast.py:
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.
2533
2534 2008-04-28  Johan Dahlin  <johan@gnome.org>
2535
2536         * giscanner/transformer.py (Transformer._traverse_one): Avoid recursion
2537         when scanning girepository.h
2538
2539         * giscanner/sourcescanner.py (SourceScanner._preprocess): Define
2540         a __GI_SCANNER__ when we run.
2541
2542 2008-04-28  Johan Dahlin  <jdahlin@async.com.br>
2543
2544         * giscanner/ast.py:
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.
2552
2553 2008-04-28  Johan Dahlin  <jdahlin@async.com.br>
2554
2555         * giscanner/ast.py:
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
2562
2563 2008-04-28  Johan Dahlin  <johan@gnome.org>
2564
2565         * giscanner/girwriter.py:
2566         * tests/parser/Foo-expected.gir:
2567         Write property.type as a child node.
2568
2569 2008-04-27  Johan Dahlin  <johan@gnome.org>
2570
2571         * Makefile.am:
2572         * configure.ac:
2573         * gidl/Makefile.am:
2574         * gidl/gobject-2.0.gidl:
2575         * gir/Makefile.am:
2576         * gir/gobject-2.0.gir:
2577         * tests/parser/Makefile.am:
2578         Replace the GObject gidl with a GObject gir.
2579
2580 2008-04-27  Johan Dahlin  <johan@gnome.org>
2581
2582         * tools/Makefile.am (bin_SCRIPTS): g-ir-scanner is a script,
2583         not a program.
2584
2585         * giscanner/xmlwriter.py:
2586         * tests/parser/Foo-expected.gir:
2587         Include indentation in line length calculation
2588
2589 2008-04-27  Johan Dahlin  <johan@gnome.org>
2590
2591         * giscanner/girparser.py:
2592         Prettify NS parsing using elementtree.
2593
2594 2008-04-27  Johan Dahlin  <johan@gnome.org>
2595
2596         * configure.ac:
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
2607         parser.
2608         Update tests and fix simplify makefiles by depending
2609         on GNU make extensions.
2610
2611 2008-04-27  Johan Dahlin  <johan@gnome.org>
2612
2613         * giscanner/xmlwriter.py:
2614         Wrap attributes for lines which are wider than 79 characters
2615
2616         * giscanner/scannerlexer.l:
2617         Allow parenthesis in annotations
2618
2619         * giscanner/ast.py:
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.
2626
2627 2008-04-27  Johan Dahlin  <johan@gnome.org>
2628
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.
2635
2636 2008-04-27  Johan Dahlin  <johan@gnome.org>
2637
2638         * giscanner/giscannermodule.c (]): Cast the getter, avoids
2639         a compilation warning.
2640
2641         * tools/Makefile.am (g_ir_scanner_SOURCES):
2642         g-ir-scanner has no sources.
2643
2644 2008-04-25  Johan Dahlin  <johan@gnome.org>
2645
2646         * giscanner/Makefile.am:
2647         * giscanner/ast.py:
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
2655
2656 2008-04-25  Johan Dahlin  <jdahlin@async.com.br>
2657
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.
2669
2670 2008-04-25  Johan Dahlin  <jdahlin@async.com.br>
2671
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
2686
2687 2008-04-25  Johan Dahlin  <jdahlin@async.com.br>
2688
2689         * TODO:
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.
2705
2706 2008-04-25  Johan Dahlin  <jdahlin@async.com.br>
2707
2708         * giscanner/cgobject.py:
2709         * giscanner/gidlwriter.py:
2710         * giscanner/gobjecttreebuilder.py:
2711         Add support for signals
2712
2713         * tests/parser/foo.c (foo_object_class_init):
2714         * Foo-expected.gidl:
2715         Add a signal and update the expected output.
2716
2717 2008-04-24  Johan Dahlin  <jdahlin@async.com.br>
2718
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.
2733
2734 2008-04-22  Johan Dahlin  <jdahlin@async.com.br>
2735
2736         * giscanner/gidlwriter.py:
2737         * giscanner/girwriter.py:
2738         * giscanner/gobjecttreebuilder.py:
2739         * giscanner/treebuilder.py:
2740         Add support for Callbacks
2741
2742 2008-04-22  Havoc Pennington  <hp@pobox.com>
2743
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.
2747
2748 2008-04-22  Havoc Pennington  <hp@pobox.com>
2749
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.
2753
2754 2008-04-22  Johan Dahlin  <jdahlin@async.com.br>
2755
2756         * tests/parser/Foo-expected.gidl:
2757         * tests/parser/foo-object.h:
2758         Add a callback test
2759
2760 2008-04-22  Havoc Pennington  <hp@pobox.com>
2761
2762         * girepository/ginfo.c (g_interface_info_find_method):
2763         Use interface_blob_size not object_blob_size to compute offset.
2764
2765 2008-04-22  Havoc Pennington  <hp@pobox.com>
2766
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.
2770
2771 2008-04-22  Havoc Pennington  <hp@pobox.com>
2772
2773         * girepository/ginfo.c (g_registered_type_info_get_g_type): new
2774         function to get the GType given a RegisteredTypeInfo
2775
2776 2008-04-22  Johan Dahlin  <johan@gnome.org>
2777
2778         * COPYING: Add a LGPL license, to prevent automake to
2779         put in a copy of GPL here. Pointed out by Havoc.
2780
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):
2822         * tools/gidlnode.h:
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.
2828
2829 2008-04-22  Johan Dahlin  <jdahlin@async.com.br>
2830
2831         * giscanner/girwriter.py:
2832         * tools/g-ir-scanner:
2833         Add an initial GIR writer and a --format option to g-ir-scanner
2834
2835 2008-04-21  Johan Dahlin  <johan@gnome.org>
2836
2837         * giscanner/cgobject.py: Use ctypes.util.find_library to locate
2838         gobject-2.0 and raise ImportError if not found.
2839
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.
2848
2849 2008-04-21  Johan Dahlin  <johan@gnome.org>
2850
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.
2857
2858 2008-04-21  Johan Dahlin  <johan@gnome.org>
2859
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.
2864
2865         * tests/parser/Foo-expected.gidl: Update
2866         * tests/parser/foo.c: Add a string property
2867
2868         * giscanner/gobjecttreebuilder.py:
2869         After stripping namespaces, remove the original
2870         item to avoid duplication (GtkButton struct and Button object)
2871
2872 2008-04-21  Johan Dahlin  <johan@gnome.org>
2873
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
2878
2879 2008-04-21  Johan Dahlin  <johan@gnome.org>
2880
2881         * giscanner/gidlwriter.py:
2882         * giscanner/gobjecttreebuilder.py:
2883         * giscanner/treebuilder.py:
2884         Add constructors for object/boxed types.
2885
2886 2008-04-21  Johan Dahlin  <johan@gnome.org>
2887
2888         * giscanner/gidlwriter.py:
2889         * giscanner/gobjecttreebuilder.py:
2890         Add support for boxed types
2891
2892 2008-04-21  Johan Dahlin  <johan@gnome.org>
2893
2894         * giscanner/giscannermodule.c: Mark structures as const,
2895         wrap SourceType.const_string.
2896
2897         * tests/parser/foo-object.h: Add a couple of constants.
2898
2899         * giscanner/gidlwriter.py:
2900         * giscanner/gobjecttreebuilder.py:
2901         * giscanner/treebuilder.py:
2902         Add basic support for interfaces
2903
2904         * tools/g-ir-scanner:
2905         Add -o/--output for writing to a file
2906
2907 2008-04-21  Havoc Pennington  <hp@redhat.com>
2908
2909         * TODO: add some C API wishlist items I could think of quickly
2910
2911 2008-04-21  Johan Dahlin  <jdahlin@async.com.br>
2912
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
2917
2918 2008-04-21  Johan Dahlin  <johan@gnome.org>
2919
2920         * giscanner/gobjecttreebuilder.py:
2921         Strip namespace and object prefix from method names.
2922
2923 2008-04-21  Johan Dahlin  <johan@gnome.org>
2924
2925         * tools/g-ir-scanner (main): Add --pkg option to pass in
2926         pkg-config modules to get cflags from.
2927
2928         * giscanner/gidlwriter.py (GIDLWriter._write_method): 
2929         Avoid duplication, reuse function writer for methods.
2930
2931 2008-04-21  Johan Dahlin  <jdahlin@async.com.br>
2932
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
2940
2941 2008-04-20  Johan Dahlin  <jdahlin@async.com.br>
2942
2943         * giscanner/cgobject.py:
2944         * giscanner/gidlwriter.py:
2945         * giscanner/gobjecttreebuilder.py:
2946         * giscanner/treebuilder.py:
2947         Add support for classes and methods
2948
2949 2008-04-20  Johan Dahlin  <johan@gnome.org>
2950
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
2957
2958 2008-04-19  Johan Dahlin  <johan@gnome.org>
2959
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.
2967
2968 2008-04-18  Johan Dahlin  <jdahlin@async.com.br>
2969
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.
2974
2975 2008-04-18  Johan Dahlin  <johan@gnome.org>
2976
2977         * giscanner/sourcescanner.py:
2978         * giscanner/treebuilder.py:
2979         * tools/g-ir-scanner:
2980         split tree building and source scanning interface to separate files.
2981
2982 2008-04-18  Johan Dahlin  <johan@gnome.org>
2983
2984         * tools/g-ir-scanner (Parameter.__init__): Start constructing
2985         a real node tree.
2986         - Add support for struct/parameter/return, start parsing of ctypes
2987
2988         * giscanner/giscannermodule.c: wrap GISourceType.child_list and
2989         fix the style
2990
2991 2008-03-31  Johan Dahlin  <johan@gnome.org>
2992
2993         * tools/g-ir-scanner:
2994         Start to build abstract syntax node of scanned sources.
2995         Add support for cpp options.
2996
2997 2008-03-27  Johan Dahlin  <johan@gnome.org>
2998
2999         * giscanner/giscannermodule.c:
3000         * giscanner/scannerlexer.l:
3001         * giscanner/sourcescanner.c:
3002         * tools/g-ir-scanner:
3003
3004         Add simple pre-processor using subprocess and a PIPE.
3005         Change the parse_file apis to accept a file descriptor.
3006
3007 2008-03-25  Johan Dahlin  <johan@gnome.org>
3008
3009         * giscanner/__init__.py:
3010         * tools/g-ir-scanner:
3011         Fix a typo and add an example python test program.
3012
3013 2008-03-25  Johan Dahlin  <johan@gnome.org>
3014         
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
3020
3021 2008-03-25  Johan Dahlin  <johan@gnome.org>
3022         
3023         * configure.ac:
3024         * giscanner:
3025         * giscanner/__init__.py:
3026         * giscanner/giscannermodule.c:
3027         * giscanner/Makefile.am:
3028
3029         Add initial python bindings for the scanner and 
3030         depend on python 2.5.
3031
3032 2008-03-25  Johan Dahlin  <johan@gnome.org>
3033
3034         * Makefile.am:
3035         * configure.ac:
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:
3043
3044         Move the scanner to a separate library.
3045         
3046 2008-03-23  Johan Dahlin  <johan@gnome.org>
3047
3048         * tools/Makefile.am:
3049         * tools/scanner.c:
3050         * tools/scanner.h:
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
3058         other programs.
3059
3060 2008-03-23  Johan Dahlin  <johan@gnome.org>
3061
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.
3065
3066 2008-03-12  Johan Dahlin  <johan@gnome.org>
3067
3068         * relaxng/relaxng.rng:
3069         Add a releaxng in relaxng we can use to validate the relaxngs
3070         schemas
3071
3072 2008-03-12  Jürg Billeter  <j@bitron.ch>
3073
3074         * tools/scanner.c: (g_igenerator_new):
3075         * tools/scannerparser.y:
3076         Fix compiler warnings.
3077
3078 2008-03-12  Jürg Billeter  <j@bitron.ch>
3079
3080         * tools/scanner.c:
3081         * tools/scanner.h:
3082         * tools/scannerparser.y:
3083         Start fixing memory management in g-idl-scanner.
3084
3085 2008-03-12  Rob Taylor  <rob.taylor@codethink.co.uk>
3086
3087         * tools/gidlcompilercontext.c: (write_compiled):
3088         Fix critical warning when no shlib passed to g-idl-compiler.
3089
3090 2008-03-12  Johan Dahlin  <johan@gnome.org>
3091
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.
3096         
3097 2008-03-12  Johan Dahlin  <johan@gnome.org>
3098
3099         * tools/gidlwriter.c (function_generate): Add missing trailing quote.
3100         Bad Philip!
3101
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:
3109
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*
3112         in the idl file.
3113
3114 2008-03-11  Johan Dahlin  <johan@gnome.org>
3115
3116         * tools/compiler.c:
3117         * tools/generate.c:
3118         Remove most global variables
3119
3120 2008-03-11  Philip Van Hoof  <me@pvanhoof.be>
3121  
3122         * tools/scannerlexer.l:
3123         * tools/scanner.c:
3124         * tests/parser/Foo-expected.gidl:
3125         * tests/parser/foo.c:
3126         * tests/parser/Makefile.am:
3127         * tests/parser/foo-object.h:
3128  
3129         Added a few extra tests. Which resulted in finding a few
3130         bugs. Which resulted in me fixing those bugs
3131
3132 2008-03-11  Rob Taylor  <rob.taylor@codethink.co.uk>
3133
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
3137         easier debugging.
3138
3139 2008-03-11  Rob Taylor  <rob.taylor@codethink.co.uk>
3140
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
3144         g-idl-compiler
3145
3146 2008-03-11  Johan Dahlin  <johan@gnome.org>
3147
3148         * tests/parser/Foo-expected.gidl:
3149         * tests/parser/foo-object.h:
3150         * tools/scanner.c:
3151         * tools/scanner.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.
3156         
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.
3160
3161 2008-03-11  Johan Dahlin  <johan@gnome.org>
3162
3163         * tools/compiler.c (main): Coding style fixes
3164
3165 2008-03-10  Johan Dahlin  <johan@gnome.org>
3166
3167         * configure.ac:
3168         Add GCOV_LIBS to GILIBS
3169
3170 2008-03-10  Johan Dahlin  <johan@gnome.org>
3171
3172         * tests/parser/Foo-expected.gidl:
3173         * tests/parser/foo.c:
3174         Rename null-ok to direction=out
3175
3176 2008-03-10  Philip Van Hoof  <me@pvanhoof.be>
3177
3178         reviewed and extensively tested by Johan
3179
3180         * tests/parser/Foo-expected.gidl:
3181         * tests/parser/foo-object.h:
3182         * tests/parser/foo.c:
3183         * tools/gidlnode.c:
3184         * tools/gidlnode.h:
3185         * tools/gidlwriter.c:
3186         * tools/scanner.c:
3187         * tools/scanner.h:
3188         * tools/scannerlexer.l:
3189         * tools/scannerparser.y:
3190
3191         Add support for scanning for gtk-doc comments inside
3192         C source files. Add tests
3193
3194 2008-03-10  Johan Dahlin  <johan@gnome.org>
3195
3196         * tests/parser/Makefile.am:
3197         * tests/parser/foo.c:
3198         * tools/scanner.c:
3199         * tools/scanner.h:
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
3205
3206 2008-03-10  Johan Dahlin  <johan@gnome.org>
3207
3208         * tests/invoke/Makefile.am: Make the generated metadata 
3209         depend on the g-idl-compiler
3210
3211 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
3212
3213         * tools/gidlmodule.c
3214         * tools/gidlmodule.h
3215         * tools/gidlnode.c
3216         * tools/gidlnode.h
3217         Remove the old g-idl-compiler code.
3218
3219
3220 2008-02-22  Mark Doffman  <mark.doffman@codethink.co.uk>
3221
3222         * tools/quote-file.sh
3223         * tools/compiler.c
3224         * tools/generate.c
3225         Move to using the 'C' struct compiler code.
3226
3227 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
3228
3229         * girepository/ginfo.c
3230         * tools/generate.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.
3235
3236 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
3237
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.
3242
3243         This would deal properly with:
3244         typedef char* random;
3245         const random = "A string";
3246
3247 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
3248
3249         * girepository/ginfo.c
3250         * girepository/girepository.h
3251         * tools/generate.c
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.
3255
3256         * girepository/gmetadata.c
3257         * girepository/gmetadata.h
3258         * tools/generate.c
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
3263         be possible.
3264
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.
3269
3270 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
3271
3272         * girepository/ginfo.c
3273         * girepository/gmetadata.c
3274         * girepository/gmetadata.h
3275
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.
3281
3282 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
3283
3284         * tools/gidlcompilercontext.c
3285         * tools/gidlcompilercontext.h
3286         * tools/gidlcompilerentrynode.c
3287         * tools/gidlcompilerentrynode.h
3288         * tools/gidlcompilertypenode.c
3289         * tools/gidlcompilertypenode.h
3290
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.
3297
3298         Cleaned up and improved by Johan and Robert :-)
3299
3300 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
3301
3302         * girepository/ginvoke.c
3303         * girepository/girepository.h
3304         * girepository/gmetadata.c
3305         * girepository/gmetadata.h
3306         * tools/generate.c
3307         * tools/gidlparser.c
3308         Modify TYPE_TAG_INTERFACE to TYPE_TAG_SYMBOL
3309         to avoid confusion with the interface blob.
3310
3311         * tools/generate.c
3312         * tools/gidlparser.c
3313         Remove magic numbers and replace with type-tag
3314         enumeration symbols.
3315
3316         * girepository/gmetadata.c
3317         Add validate declaration.
3318
3319 2008-03-10  Jürg Billeter  <j@bitron.ch>
3320
3321         * tools/gidlparser.c: (parse_type_internal):
3322         * tools/scannerlexer.l:
3323         * tools/scannerparser.y:
3324         Support C99 _Bool type in scanner.
3325
3326 2008-03-10  Jürg Billeter  <j@bitron.ch>
3327
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.
3334
3335 2008-03-10  Johan Dahlin  <johan@gnome.org>
3336
3337         * gidl.dtd: Remove, we're using relaxng for now
3338
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.
3343
3344 2008-03-08  Marc-Andre Lureau  <marcandre.lureau@gmail.com>
3345
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.
3350
3351 2008-03-06  Johan Dahlin  <jdahlin@async.com.br>
3352
3353         * configure.ac:
3354         Consistent checks, add missing 'test'
3355
3356 2008-03-05  Havoc Pennington  <hp@redhat.com>
3357
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).
3362
3363 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
3364
3365         reviewed by: Rob Taylor  <rob.taylor@codethink.co.uk>
3366         reviewed by: Johan Dahlin  <johan@gnome.org>
3367
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.
3373
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.
3378
3379         * tests/invoke/invoke-namespace-find.sh: Removed:
3380         Noone knows why this was here, so removed.
3381
3382 2008-02-19  Rob Taylor  <rob.taylor@codethink.co.uk>
3383
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.
3387
3388 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
3389
3390         * tools/gidlnode.h:
3391         * tools/gidlnode.c: (g_idl_node_can_have_member):
3392         Add g_idl_node_can_have_member.
3393
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.
3397
3398 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
3399
3400         * gidl/GLib.gidl: Renamed to gidl/gobject-2.0.gidl:
3401         * gidl/Makefile.am:
3402         * tests/parser/Makefile.am:
3403         Rename GLib.gidl to gobject-2.0.gidl and install in /usr/share/gidl.
3404
3405 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
3406
3407         * tools/scanner.c: (main):
3408         Ignore -pthread when passed to g-idl-scanner.
3409
3410 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
3411
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.
3418
3419 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
3420
3421         * gobject-introspection.pc.in:
3422         Provide variables for g-idl-parser, scanner and compiler in the
3423         pkgconfig file.
3424
3425 2008-02-13  Rob Taylor  <rob.taylor@codethink.co.uk>
3426
3427         * gcov.mak:
3428         * girepository/Makefile.am:
3429         * tools/Makefile.am:
3430         Rename GCOV_SOURCES to GCOVSOURCES to top automake complaining.
3431
3432 2008-02-10  Johan Dahlin  <johan@gnome.org>
3433
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):
3438         Add boxed test.
3439
3440 2008-02-10  Johan Dahlin  <johan@gnome.org>
3441
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.
3446
3447 2008-02-10  Johan Dahlin  <johan@gnome.org>
3448
3449         * Makefile.am:
3450         * configure.ac:
3451         * girepository/Makefile.am:
3452         Make 'make distcheck' work again.
3453
3454 2008-02-10  Johan Dahlin  <johan@gnome.org>
3455
3456         * m4/Makefile.am (EXTRA_DIST): its called as-compiler-flag.m4,
3457         not as-compiler.m4.
3458
3459         * tests/parser/Makefile.am: Only create Foo.gidl when running make
3460         check, eg exclude it from BUILT_SOURCES.
3461
3462 2008-02-08  Rob Taylor  <rob.taylor@codethink.co.uk>
3463
3464         * Makefile.am:
3465         * configure.ac:
3466         * gcov.mak: Added:
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'.
3474
3475 2008-02-08  Rob Taylor  <rob.taylor@codethink.co.uk>
3476
3477         * Makefile.am:
3478         * configure.ac:
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/
3505
3506         * Makefile.am:
3507         * configure.ac:
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.
3515
3516 2008-02-04  Rob Taylor  <rob.taylor@codethink.co.uk>
3517
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.
3523
3524 2008-02-04  Rob Taylor  <robtaylor@floopily.org>
3525
3526         * src/ginfo.c:
3527         Add some documentation for GICallableInfo
3528
3529 2008-02-01  Mark Doffman  <mark.doffman@codethink.co.uk>
3530
3531         * gidl.dtd:
3532         Correct syntax errors in the DTD file.
3533         * relaxng/api.xml:
3534         * relaxng/c-types.xml:
3535         * relaxng/g-types.xml:
3536         * relaxng/util.xml:
3537         Add a RelaxNG specification for the GObject Introspection XML data.
3538         The Specification has validated all of the test files.
3539
3540 2008-01-25  Rob Taylor  <robtaylor@floopily.org>
3541
3542         * tests/roundtrips.sh:
3543         * tests/struct.test:
3544         Add roundtrip tests for structs.
3545
3546 2008-01-11  Johan Dahlin  <johan@gnome.org>
3547
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
3556
3557         Rename ginode -> node, gitype -> type, gifunc -> func.
3558
3559         * src/gidlnode.c (g_idl_node_add_member, g_idl_node_cmp):
3560         Two new functions, refactor out of scanner.c
3561
3562         * src/scanner.c: (g_igenerator_process_function_symbol):
3563         * src/scannerlexer.l:
3564         Do not save the content of the deprecated variable, only
3565         if it's set or not.
3566
3567 2008-01-11  Johan Dahlin  <johan@gnome.org>
3568
3569         * tests/parser/foo-object.h: Add a couple of comment parser tests.
3570
3571 2008-01-11  Jürg Billeter  <j@bitron.ch>
3572
3573         * src/scannerlexer.l:
3574         Fix GTK-Doc parsing.
3575
3576 2008-01-11  Jürg Billeter  <j@bitron.ch>
3577
3578         * src/scannerlexer.l:
3579         Fix GTK-Doc parsing.
3580
3581 2008-01-11  Jürg Billeter  <j@bitron.ch>
3582
3583         * src/scanner.c: (lookup_symbol):
3584         Return unresolved name if we find unknown symbol.
3585
3586 2008-01-11  Jürg Billeter  <j@bitron.ch>
3587
3588         * src/scanner.c: (g_igenerator_generate):
3589         Initialize GObject to fix scanning interface properties.
3590
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.
3595
3596         * tests/parser/Makefile.am:
3597         Set G_DEBUG=fatal_warnings to abort test on warnings and criticals.
3598
3599 2007-12-27  Johan Dahlin  <johan@gnome.org>
3600
3601         * src/scannerlexer.l:
3602         Parse gtk-doc comments.
3603
3604         * src/gidlwriter.c: (function_generate):
3605         Reorganize, avoid duplication and add support for
3606         writing deprecated functions.
3607
3608         * src/scannerparser.y:
3609         * src/scanner.h:
3610         Add new structure CDirective and functions to create/free them.
3611
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.
3622
3623         * tests/parser/foo-object.h:
3624         * tests/parser/Foo-expected.gidl:
3625         Add deprecated directive
3626
3627 2007-12-27  Johan Dahlin  <johan@gnome.org>
3628
3629         * src/scannerlexer.l (intsuffix): Add emacs mode line and
3630         escape ' and " so it looks more like C.
3631
3632         * src/scanner.c:
3633         Unlink temporary file used.
3634
3635 2007-12-27  Johan Dahlin  <johan@gnome.org>
3636
3637         * src/scanner.c: (g_igenerator_new), (g_igenerator_free),
3638         (g_igenerator_start_preprocessor), (main):
3639         * src/scanner.h:
3640         * src/scannerparser.y:
3641         Plug a couple of simple memory leaks.
3642
3643 2007-12-27  Johan Dahlin  <johan@gnome.org>
3644
3645         * src/scanner.c: (g_igenerator_parse_macros),
3646         (g_igenerator_start_preprocessor), (g_igenerator_set_verbose),
3647         (main):
3648         * src/scanner.h:
3649         * src/scannerparser.y:
3650         * tests/parser/Makefile.am:
3651
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.
3657
3658 2007-12-16  Johan Dahlin  <jdahlin@async.com.br>
3659
3660         * src/Makefile.am: Rename clexer.l to scannerlexer.l and
3661         cparser.y to scannerparser.y
3662
3663 2007-12-11  Johan Dahlin  <johan@gnome.org>
3664
3665         * src/clexer.l:
3666         * src/cparser.y:
3667         * src/scanner.c: (g_igenerator_new):
3668         * src/scanner.h:
3669         Get rid of the global the_generator variable.
3670
3671 2007-12-10  Johan Dahlin  <johan@gnome.org>
3672
3673         * src/scanner.c (main): Add an output option,
3674         add checks for required parameters
3675
3676         * src/Makefile.am:
3677         set BUILD_SOURCES and CLEANFILES properly
3678
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):
3686         * src/gidlwriter.h:
3687         * src/scanner.c: (g_igenerator_generate):
3688         * src/scanner.h:
3689         * src/scannerwriter.c:
3690
3691         Refactor scannerwriter to only be tied to a GIdlModule and move
3692         it (again!) to gidlwriter.c. Change the writer function to take
3693         a filename.
3694
3695 2007-12-10  Johan Dahlin  <johan@gnome.org>
3696
3697         * src/Makefile.am:
3698         * src/scanner.c: (g_igenerator_generate):
3699         * src/scanner.h:
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):
3708
3709         Move the scanner gidl writing to a separate source file.
3710
3711 2007-12-10  Johan Dahlin  <johan@gnome.org>
3712
3713         * src/cparser.y:
3714         * src/scanner.c:
3715         * src/scanner.h:
3716         Move over all CType construction functions.
3717
3718         * tests/parser/Makefile.am:
3719         Be verbose when printing parsing tests results.
3720
3721 2007-12-10  Johan Dahlin  <johan@gnome.org>
3722
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
3726         we use.
3727
3728         * tests/parser/Makefile.am (check-local): Silent diff and skip
3729         -U__GNUC__ which is always defined now
3730
3731 2007-12-10  Johan Dahlin,,,  <jdahlin@plasttroll>
3732
3733         reviewed by: <delete if not using a buddy>
3734
3735         * src/scanner.c: (g_igenerator_start_preprocessor), (main):
3736         * tests/parser/Makefile.am:
3737
3738 2007-12-09  Johan Dahlin  <johan@gnome.org>
3739
3740         * src/scanner.c:
3741         Use GOption for command line options.
3742         (g_igenerator_new, main): Simplify constructor and they way
3743         parameters are passed into it.
3744
3745         * src/cparser.y:
3746         * src/Makefile.am:
3747         * src/clexer.l:
3748         * src/cparser.y:
3749         * src/gen-introspect.c:
3750         * src/gen-introspect.h:
3751         * src/scanner.c:
3752         Rename gen-introspect.[ch] to scanner.[ch]
3753
3754 2007-12-09  Johan Dahlin  <johan@gnome.org>
3755
3756         * TODO: Update
3757
3758         * src/Makefile.am: Rename gen-introspect to g-idl-scanner,
3759         don't make the repository library and the other utilites link against
3760         gthread-2.0
3761
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.
3769
3770         * tests/parser/Makefile.am:
3771         Depend on the gen-introspect binary
3772
3773 2007-12-09  Johan Dahlin  <johan@gnome.org>
3774
3775         * src/gen-introspect.c (g_igenerator_process_types):
3776         Break into smaller pieces, one for each generated node type.
3777
3778 2007-12-08  Johan Dahlin  <johan@gnome.org>
3779
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):
3786
3787         Add a subobject test and make sure to register defined classes
3788         in the lookup symbol hash table.
3789
3790 2007-12-08  Johan Dahlin  <johan@gnome.org>
3791
3792         * gidl/GLib.gidl:
3793         * src/Makefile.am:
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:
3800
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.
3806
3807 2007-12-08  Johan Dahlin  <johan@gnome.org>
3808
3809         * src/gen-introspect.c:
3810         Move main to the end of the file and attempt to make it valid
3811         ansi c.
3812
3813         * tests/parser/Makefile.am (BUILT_SOURCES): Remove .repo here,
3814         we're not quite ready to generate metadata yet.
3815
3816         * tests/parser/:
3817         * configure.ac:
3818
3819         Add a simple gen-introspect parser test
3820
3821 2007-12-06  Gustavo J. A. M. Carneiro  <gjc@gnome.org>
3822
3823         reviewed by: Johan Dahlin  <johan@gnome.org>
3824
3825         * configure.ac:
3826         * gobject-introspection.pc.in:
3827         * src/Makefile.am:
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):
3835         * src/gidlmodule.h:
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):
3914         * src/gmetadata.h:
3915         * tests/Makefile.am:
3916         * tests/invoke/Makefile.am:
3917         * tests/invoke/invoke-namespace-find.sh:
3918         * tests/invoke/invoke.c: (main):
3919
3920         Add a namespace/shared library mapping. fixes #313268.
3921
3922 2007-12-03  Johan Dahlin  <johan@gnome.org>
3923
3924         * src/gidlparser.c (parse_type_internal): Disable char/gchar and
3925         guchar for now.
3926
3927 2007-11-30  Jürg Billeter  <j@bitron.ch>
3928
3929         * configure.ac:
3930         * src/Makefile.am:
3931         * src/clexer.l:
3932         * src/cparser.y:
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:
3958
3959         Import gen-introspect to generate introspection information by
3960         parsing C headers.
3961
3962 2007-11-30  Jürg Billeter  <j@bitron.ch>
3963
3964         * src/gidlnode.c: (g_idl_node_new): support creating callback nodes
3965
3966 2007-11-30  Jürg Billeter  <j@bitron.ch>
3967
3968         * src/gidlparser.c: (end_element_handler): Don't leave requires
3969         state too early.
3970
3971 2007-11-29  Johan Dahlin  <johan@gnome.org>
3972
3973         * src/gidlparser.c (parse_type_internal): Add char,
3974         gchar and guchar to the builtin types.
3975
3976 2007-11-26  Johan Dahlin  <johan@gnome.org>
3977
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:
3982
3983         Add g_object_info_get_type_name, g_object_info_get_type_init and
3984         g_irepository_is_registered.
3985
3986 2006-08-14  Jürg Billeter  <j@bitron.ch>
3987
3988       * src/gidlparser.c: (end_element_handler): Don't leave
3989         namespace and implements states too early.
3990         Fixes #351264
3991
3992 2007-11-26  Johan Dahlin  <johan@gnome.org>
3993
3994         * src/gmetadata.c (validate_struct_blob):
3995         pass blob_type to validate_function_blob instead of
3996         hard-coding BLOB_TYPE_STRUCT.
3997
3998         Patch by Torsten Schoenfeld, fixes #314190
3999
4000 2006-10-03  Torsten Schoenfeld  <tsch@cvs.gnome.org>
4001
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.
4007
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.
4010
4011 2005-08-31  Torsten Schoenfeld  <tsch@cvs.gnome.org>
4012
4013         * src/girepository.h: Export g_invoke_error_quark.
4014
4015 2005-08-31  Torsten Schoenfeld  <tsch@cvs.gnome.org>
4016
4017         * src/ginvoke.c: Remove the fallback implementation of
4018         g_function_info_invoke since we now formally depend on libffi.
4019
4020 2005-07-25  Matthias Clasen  <mclasen@redhat.com>
4021
4022         * src/Makefile, tests/Makefile, tests/invoke/Makefile:
4023         Remove these files from cvs, as they are now generated.
4024
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
4028         Carneiro)
4029
4030         * Commit an autoconf-conversion patch by
4031         Gustavo Carneiro (#308708)
4032
4033 2005-05-24  Matthias Clasen  <mclasen@redhat.com>
4034
4035         * src/compiler.c (main): Use it here to validate
4036         the generated metadata.
4037
4038         * src/gmetadata.[hc]: Add code to validate a
4039         metadata blob.
4040
4041         * metadata-format.txt: Updates
4042
4043 2005-05-22  Matthias Clasen  <mclasen@redhat.com>
4044
4045         * tests/*: Add struct offsets to field and vfunc
4046         elements.
4047
4048         * src/generate.c (write_vfunc_info): Write offset
4049         information for vfuncs.
4050
4051         * src/gidlnode.c (g_idl_node_build_metadata): Write
4052         the struct offsets into the metadata.
4053
4054         * src/gidlparser.c: Parse the offset attributes of
4055         field and vfunc elements.
4056
4057         * src/gidlnode.h: Add offset members to field and
4058         vfunc nodes.
4059
4060 2005-05-21  Matthias Clasen  <mclasen@redhat.com>
4061
4062         * TODO: Updates.
4063
4064         * gidl.dtd: Updates.
4065
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.
4069
4070 2005-05-20  Matthias Clasen  <mclasen@redhat.com>
4071
4072         * src/gidlparser.c (start_field): Make fields in objects
4073         work.
4074
4075         * src/gidlmodule.c: Include string.h
4076
4077         * TODO: Updates.
4078         :
4079
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.
4084
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
4088         function blobs.
4089
4090         * src/gidlmodule.c (g_idl_module_build_metadata): Add some
4091         error checking for blob sizes.
4092
4093 2005-05-19  Matthias Clasen  <mclasen@redhat.com>
4094
4095         * src/gidlnode.c (g_idl_node_build_metadata): Correctly handle
4096         interface types for which is_pointer is FALSE, e.g. enums.
4097
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.
4102
4103         * TODO: Updates
4104
4105 2005-05-17  Matthias Clasen  <mclasen@redhat.com>
4106
4107         * TODO: Updates
4108
4109         * metadata-format.txt: Cleanups by Maciej Katafiasz.
4110
4111 2005-05-15  Matthias Clasen  <mclasen@redhat.com>
4112
4113         * src/*.c: Change the directory to be addressed by
4114         1-based indexes, and use an index of zero to mean
4115         'no object'.
4116
4117 2005-05-15  Matthias Clasen  <mclasen@redhat.com>
4118
4119         * tests/roundtrips.sh (SIMPLE_TESTS): Add union.test.
4120
4121         * tests/union.test: Add a union test.
4122
4123         * src/generate.c: Handle unions.
4124
4125         * src/girepository.h:
4126         * src/ginfo.c: Add GIUnionInfo and functions to access it.
4127
4128         * src/gidlnode.c: Handle GIdlNodeUnion nodes.
4129
4130         * src/gidlparser.c (start_union): Parse <union> elements.
4131
4132         * src/gidlnode.h: Add a GIdlNodeUnion.
4133
4134         * gidl.dtd: Add a <union> element.
4135
4136         * src/gmetadata.c (g_metadata_check_sanity): Check
4137         union_blob_size.
4138
4139         * src/gmetadata.h: Add union_blob_size to Header,
4140         add a UnionBlob.
4141
4142         * metadata-format.txt: Add a UnionBlob.
4143
4144 2005-05-13  Matthias Clasen  <mclasen@redhat.com>
4145
4146         * tests/*: Update testcases.
4147
4148         * src/generate.c (write_callable_info): Don't forget to
4149         write transfer and null-ok attributes for return types
4150         and parameters.
4151
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.
4155
4156         * src/compiler.c (format_output): Make the generated
4157         C code compile.
4158
4159         * README: Point to a recent libffi snapshot.
4160
4161         * tests/invoke/*: Some invoke tests.
4162
4163         * src/Makefile: Add ginvoke.c and the necessary
4164         libffi information.
4165
4166         * src/girepository.h (g_function_info_invoke): Add
4167         a GError argument.
4168
4169         * src/ginvoke.c (g_function_info_invoke): Initial
4170         implementation of invoke functionality based on libffi.
4171
4172         * src/gidlnode.c (g_idl_node_build_metadata): Pass the
4173         strings and types hash tables in the right order when
4174         recursing.
4175         (find_entry_node): Free the name parts.
4176
4177 2005-05-12  Johan Dahlin  <johan@gnome.org>
4178
4179         * src/generate.c: Generate consistent end tags.
4180
4181         * tests/*: Update
4182
4183 2005-05-12  Matthias Clasen  <mclasen@redhat.com>
4184
4185         * TODO: Updates
4186
4187         * src/gidlparser.c (start_function): Actually add
4188         methods to objects.  (Steven Walter)
4189
4190         * src/girepository.h:
4191         * src/ginfo.c: Rename Transfer and Direction to
4192         GITransfer and GIDirection. (Torsten Schoenfeld)
4193
4194         * tests/*: Make tests work with the changes in name
4195         handling.
4196
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.
4200
4201         * src/gidlmodule.c (g_idl_module_build_metadata): Choke
4202         on '.' in names.
4203
4204         * src/ginfo.c (g_object_info_get_parent): Return NULL
4205         if blob->parent is 0. Still need to make sure index
4206         0 is not used.
4207
4208         * src/generate.c: Generate qualified names when
4209         referring to non-local types. Emit transfer attribute
4210         for return types.
4211
4212         * src/compiler.c (format_output): Put the function
4213         attributes where gcc accepts them.
4214
4215 2005-05-11  Matthias Clasen  <mclasen@redhat.com>
4216
4217         * src/compiler.c (main): Add a --verbose cmdline option
4218         and only log messages if it is specified.
4219
4220         * src/gidlnode.h:
4221         * src/gidlnode.c (init_stats, dump_stats): Collect some
4222         statistics on string and type sharing.
4223
4224         * src/gidlmodule.c (g_idl_module_build_metadata): Use
4225         g_message() instead of fprintf().
4226
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.
4231
4232 2005-05-10  Matthias Clasen  <mclasen@redhat.com>
4233
4234         * src/gidlnode.c (g_idl_node_get_full_size): Correct the
4235         size calculation for 2-parameter types and for objects.
4236
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.
4240
4241         * TODO: Updates
4242
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.
4246
4247         * src/gidlnode.c:
4248         * src/gidlparser.c: Fix compiler warnings.
4249
4250 2005-05-09  Matthias Clasen  <mclasen@redhat.com>
4251
4252         * src/compiler.c (main): Free the option context.
4253
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.
4259
4260         * src/generate.c: Adapt to generate xml matching the
4261         new dtd.
4262
4263         * src/gidlparser.c:
4264         * src/gidlnode.c: Adapt to parse the new dtd.
4265
4266         * tests/*.test: Adjust to the new dtd.
4267
4268         * metadata-format.txt:
4269         * src/gmetadata.h: Remove the short_name field
4270         from the ValueBlob.
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
4274
4275 2005-05-09  Matthias Clasen  <mclasen@redhat.com>
4276
4277         * gidl.dtd: Allow constructors for boxed types,
4278         patch by Jonathan Blandford.
4279
4280
4281 2005-05-09  Matthias Clasen  <mclasen@redhat.com>
4282
4283         * --- Initial import ---