dff9e69f802abd3951c455c5e8157c124fefece9
[gnome.gobject-introspection] / ChangeLog
1 2008-10-15  Johan Bilien  <jobi@via.ecp.fr>
2
3         * tests/scanner/annotation.c: fixed a few copy-paste errors
4
5 2008-10-14  Johan Bilien  <jobi@via.ecp.fr>
6
7         Bug 556323 – transfer-ownership is wrong for functions returning const
8         char *
9
10         * giscanner/transformer.py: check for a const string as return value,
11         not just const char*. Suggested by Colin Walters
12         * tests/scanner/annotation-1.0-expected.gir: updated expected output
13
14 2008-10-14  Johan Bilien  <jobi@via.ecp.fr>
15
16         * girepository/ginfo.c, girepository/girepository.h: add
17         g_union_info_find_method
18
19 2008-10-14  Colin Walters  <walters@verbum.org>
20
21         * tests/repository/Makefile.am: Reenable repo test.
22         * tests/repository/gitestrepo.c: Prepend search
23         path for $(top_builddir)/gir dir so that we don't
24         require installation for "make check" to pass.
25
26 2008-10-13  Jürg Billeter  <j@bitron.ch>
27
28         * giscanner/glibtransformer.py:
29         * tests/scanner/annotation-1.0-expected.gir:
30         * tests/scanner/drawable-1.0-expected.gir:
31         * tests/scanner/foo-1.0-expected.gir:
32         * tests/scanner/utility-1.0-expected.gir:
33
34         Support fields in GObject structs
35
36 2008-10-13  Jürg Billeter  <j@bitron.ch>
37
38         * giscanner/ast.py: add signed integer and off_t to type_names
39
40 2008-10-12  Jürg Billeter  <j@bitron.ch>
41
42         * giscanner/girparser.py: Parse bits attribute of fields
43
44 2008-10-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
45
46         * tests/repository/Makefile.am: run 'gitestrepo' in 'make check'
47         * tests/repository/gitestrepo.c (main): instantiate
48         'GCancellable' to ensure the GType is registered before using
49         g_type_from_name()
50
51 2008-10-12  Johan Bilien  <jobi@via.ecp.fr>
52
53         * giscanner/girparser.py: actually add the parsed constant nodes
54
55 2008-10-12  Colin Walters  <walters@verbum.org>
56
57         * girepository/girepository.c: Don't cast DirEntry to Blob,
58         actually look it up by offset.
59
60 2008-10-12  Johan Bilien  <jobi@via.ecp.fr>
61
62         * giscanner/girparser.py: parse constant nodes in gir files
63
64 2008-10-12  Johan Bilien  <jobi@via.ecp.fr>
65
66         * giscanner/transformer.py: prefix for constants have an underscore,
67         so remove them as if they were functions, not objects.
68
69 2008-10-12  Johan Bilien  <jobi@via.ecp.fr>
70
71         * tests/scanner/foo-1.0-expected.gir: add constants to expected gir
72         file
73
74 2008-10-12  Colin Walters  <walters@verbum.org>
75
76         Initial patch from Jani Monoses.
77
78         * girepository/gtypelib.c: Fix inverted test for success
79         in version parsing.
80
81 2008-10-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
82
83         * tools/generate.c (write_callable_info): use "transfer-ownership"
84         attribute for return values
85
86 2008-10-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
87
88         * tools/generate.c (write_callable_info): move "transfer" and
89         "null-ok" attributes from <function> to <return-value> element
90
91 2008-10-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
92
93         * girepository/girparser.c (start_return_value): handle
94         "transfer-ownership" attribute
95
96 2008-10-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
97
98         * girepository/girparser.c (parse_param_transfer):
99         * tools/generate.c (write_callable_info): use "container" for
100         container/shallow ownership transfer (not "shallow")
101
102 2008-10-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
103
104         * girepository/girparser.c (parse_param_transfer,
105         start_parameter): Refactor handling of transfer=none/shallow/full
106         to separate function
107
108 2008-10-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
109
110         Bug 556048 – Crash in g_irepository_find_by_gtype
111
112         * girepository/gtypelib.h (BLOB_IS_REGISTERED_TYPE): added
113         * girepository/girepository.c (find_interface): Fix
114         find_by_gtype case to get the type name from right offset
115
116 2008-10-12  Jürg Billeter  <j@bitron.ch>
117
118         * giscanner/girparser.py: Fix parsing transfer-ownership attribute
119         of <return-value>
120
121 2008-10-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
122
123         * girepository/gtypelib.h (RegisteredTypeBlob): make
124         'unregistered' one bit wide as everywhere else
125
126 2008-10-12  Jürg Billeter  <j@bitron.ch>
127
128         * giscanner/glibtransformer.py:
129         * tests/scanner/annotation-1.0-expected.gir:
130         * tests/scanner/drawable-1.0-expected.gir:
131         * tests/scanner/drawable.h:
132         * tests/scanner/foo-1.0-expected.gir:
133         * tests/scanner/utility-1.0-expected.gir:
134
135         Readd class records as workaround to not break Gtk typelib
136
137 2008-10-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
138
139         * tests/types/Makefile.am: fix typo in gitesttypes namespace
140
141 2008-10-12  Jürg Billeter  <j@bitron.ch>
142
143         * giscanner/glibtransformer.py: Don't generate <record> elements
144         for class structs.
145         * tests/scanner/*: Update test cases
146
147 2008-10-11  Colin Walters  <walters@verbum.org>
148
149         Bug 552858: versioning
150
151         This is a big patch.  You should probably remove your installation
152         tree to be cleaner.
153
154         * docs/typelib-format.txt: Add nsversion entry which holds
155         version of namespace.
156         * girepository/girepository.h: Add 'version' parameter to
157         g_irepository_require.  This may be NULL.  Normally
158         bindings should pass an explicit version though.
159         * girepository/girepository.c: Lots of infrastructure to
160         support versioning.  Add some more documentation.  Disallow
161         some usage of NULL namespaces.
162         * girepository/girmodule.c: Add version parameter.
163         * girepository/gtypelib.c: Update header size.
164         * giscanner/ast.py: Add version to Namespace.
165         * giscanner/girparser.py: Parse version attribute from
166         XML, pass to Namespace.
167         * giscanner/girwriter.py: Write out version parameter.
168         * giscanner/transformer.py: Clean up include registration.
169         * tests/*: Add version attribute.
170         * tests/invoke/invoke.c: Don't try looking up test before
171         it's loaded in repository.
172         * tools/generate.c: Output version parameter.
173         * gir/Makefile.am: Add 2.0 version to .gir files.
174
175 2008-10-11  Colin Walters  <walters@verbum.org>
176
177         * giscanner/scannerlexer.l (parse_gtkdoc): Don't lose
178         if we have mismatched parens.
179
180 2008-10-11  Lucas Rocha  <lucasr@gnome.org>
181
182         * giscanner/girparser.py (_parse_enumeration_bitfield): fix typo
183         on 'members' variable.
184
185 2008-10-11  Colin Walters  <walters@verbum.org>
186
187         Bug 555947 - update annotations syntax
188
189         * giscanner/ast.py: Default to None for transfer.  Remove
190         default transfers for container types; we require this to
191         be specified now.
192         * giscanner/girwriter.py: Transfer is now 'none', 'container',
193         'full' to match repository.
194         * giscanner/scannerlexer.l: Annotations now are parenthesized.
195         * giscanner/transformer.py: Update for new annotations syntax.
196         * tests/*: Update.
197
198 2008-10-11  Johan Bilien  <jobi@litl.com>
199
200         * giscanner/scannerparser.y: ignore non-UTF-8 string constants
201
202 2008-10-11  Johan Bilien  <jobi@litl.com>
203
204         Bug 552347: Parse #defines constants
205
206         * girepository/gtypelib.c: update the list of value_size
207         with recently defined type tags
208         * giscanner/scannerparser.y: brought back parsing of #defined, as
209         present in older version
210         * giscanner/giscannermodule.c: bind gi_source_scanner_append_filename
211         * giscanner/girwriter.py: write out constant tags in the gir
212         * giscanner/sourcescanner.py: add accessor for const_string
213         * giscanner/transformer.py, giscanner/glibtransformer.py: handle
214         constant
215
216 2008-10-11  Tommi Komulainen  <tommi.komulainen@iki.fi>
217
218         Bug 555946: Install a test module exercising all types, transfer
219         rules, etc.
220
221         * configure.ac
222         * tests/Makefile.am
223         * tests/types/*: Add and install a test module that has functions
224         accepting and returning most of the basic types to enable bindings
225         implementors to more easily test their type conversion routines.
226
227 2008-10-11  Jürg Billeter  <j@bitron.ch>
228
229         Bug 552374: Const strings should be identified in the gir.
230
231         * giscanner/transformer.py: support string memory management
232         * tests/scanner/foo.h: use char * and const char *
233         * tests/scanner/foo-expected.gir: test that
234
235 2008-10-11  Johan Dahlin  <johan@gnome.org>
236
237         * giscanner/girparser.py:
238         Also parse enums which are not glib types.
239
240 2008-10-11  Lucas Rocha  <lucasr@gnome.org>
241
242         Bug 552370: add one more test for unsigned as a type, not as
243         a type qualifier.
244
245         * giscanner/ast.py: add 'uint' type name for 'unsigned'.
246         * test/scanner/foo.h: add function which uses unsigned as a type.
247         * test/scanner/foo-expected.gir: test that.
248
249 2008-10-11  Andreas Rottmann  <a.rottmann@gmx.at>
250
251         Bug 555712: Struct and union issues
252
253         * giscanner/scannerparser.y (struct_declarator): Use information
254         provided about the bit width of a field.
255         * giscanner/transformer.py (Transformer._create_member): Pass the
256         symbol's const_int member to the created field (it represents the
257         bit width).
258         * giscanner/girwriter.py (GIRWriter._write_field): Output 'bits'
259         field attribute, if present.
260         * giscanner/ast.py (Field): Add 'bits' member, specifying the
261         width in bits of the field (only relevant for bitfields).
262         * tests/*: Updated.
263
264         * giscanner/transformer.py (Transformer._create_typedef_struct)
265         (Transformer._create_typedef_union): Add calls to _create_struct()
266         and _create_union(), respectively. This causes the scanner to
267         generate output for fields of struct and union typedefs.
268         * tests/*: Updated.
269
270 2008-10-11  Jürg Billeter  <j@bitron.ch>
271
272         Bug 552370: unsigned not scanned properly
273
274         * giscanner/scannerparser.y: combine basic types such as unsigned
275         int and long long when scanning
276         * tests/scanner/foo-expected.gir:
277         * tests/scanner/foo.c: (foo_test_unsigned):
278         * tests/scanner/foo.h: test that
279
280 2008-10-11  Lucas Rocha  <lucasr@gnome.org>
281
282         Bug 554854: The --typelib-xml and --inject options should reuse
283         giscanner parser/writer.
284
285         * giscanner/ast.py: add constructor list to Struct and Union.
286         Add new param in Return's contructor to define transfer. 
287         * giscanner/girparser.py: several additions to the parser in order
288         to have parsing all nodes of the gir xml files.
289         * tools/g-ir-scanner (typelib_xml_strip, inject): use gir parser
290         and writer in --inject and --typelib-xml options.
291         * giscanner/xmlwriter.py: ignore empty attributes instead of
292         raising an error as this basically exposes a bug in GIRParser.
293         This should be reverted as soon as the parser is fixed.
294
295 2008-10-11  Lucas Rocha  <lucasr@gnome.org>
296
297         Bug 552376: scanner generates wrong names for enum members when
298         there's no defined gtype.
299
300         * giscanner/utils.py (strip_common_prefix): Always strip common
301         prefix exactly up to the last "_", and not beyond.
302         * tests/scanner/foo.h (FooEnumNoType): add FOO_ENUM_NEUF. The point
303         here is that the first character after the last '_' should should be
304         the same as the character in the same position on the type name.
305         * tests/scanner/foo-expected.gir: test that
306
307 2008-10-10  Lucas Rocha  <lucasr@gnome.org>
308
309         Bug 555293: append library_paths to LPATH env variable to work
310         around a bug in find_library when using ldconfig.
311
312         * tools/g-ir-scanner (main): ditto.
313
314 2008-10-09  Lucas Rocha  <lucasr@gnome.org>
315
316         * girepository/girepository.c (register_internal): fix regression on
317         invoke test case by making sure we load the global module in the
318         typelib when dealing with inline typelibs.
319         * girepository/gtypelib.c: a couple of coding style fixes.
320
321 2008-10-06  Lucas Rocha  <lucasr@gnome.org>
322
323         Bug 555294: Add support for multiple shared libraries per typelib.
324
325         * girepository/ginvoke.c (g_function_info_invoke),
326         girepository/ginfo.c(g_registered_type_info_get_g_type): use
327         g_typelib_symbol instead of g_module_symbol.
328         * girepository/girepository.h: remove g_typelib_set_module and add
329         g_typelib_symbol. 
330         * girepository/gtypelib.[ch] (find_some_symbol, _g_typelib_init,
331         g_typelib_new_from_memory, g_typelib_new_from_const_memory,
332         g_typelib_free, g_typelib_symbol): chnage GTypeLib to hold a list of
333         modules instead of just one. The symbol lookup is now abstracted
334         behind g_typelib_symbol which tries to find the passed symbol name in
335         one of its modules.
336         * giscanner/girwriter.py, tools/g-ir-scanner: change scanner to read
337         and write shared_library attribute as a comma-separated list of libs.
338
339 2008-10-06  Colin Walters  <walters@verbum.org>
340
341         * giscanner/transformer.py: Parse length= annotation as
342         a parameter name, not a raw int.
343         * tests/*: Update.
344
345 2008-10-03  Colin Walters  <walters@verbum.org>
346
347         Bug 551744: Non-GObject types aren't aggregating ctors and methods
348
349         * girepository/gtypelib.c: Allow ctors/methods on struct,union,
350         and boxed.
351         * giscanner/glibtransformer.py: Ditto, and GLibBoxed is also a
352         registered type.
353         * tests/*: Extend.
354
355 2008-10-03  Colin Walters  <walters@verbum.org>
356
357         Bug 554576: scan problem with ev_selection_render_selection()
358
359         * giscanner/transformer.py: Only do type resolution once we've
360         scanned all types.  What could happen before is that we'd strip
361         the namespace from local type "EvSelection" => Selection, and
362         then later pull a "Selection" from some other namespace because
363         we hadn't yet seen the local EvSelection.  This could come
364         down to hash table ordering and other things so not easy
365         to write a test for.
366
367 2008-10-03  Lucas Rocha  <lucasr@gnome.org>
368
369         * giscanner/girwriter.py (_parser_member): fix the last parameter of
370         GLibEnumMember constructor as it should be the enum member nick.
371
372 2008-10-02  Colin Walters  <walters@verbum.org>
373
374         Bug 552961: remove this parameter for methods
375
376         * giscanner/glibtransformer.py: Delete this parameter; it is
377         redundant.
378         * girepository/ginvoke.c: Insert this parameter for methods.
379         * girepository/gtypelib.c: Remove no longer needed verification of
380         method this parameter.
381         * tests/*: Update.
382
383 2008-09-30  Dan Winship  <danw@gnome.org>
384
385         Bug 554490: g-ir-scanner gets confused by '\\'
386
387         * giscanner/scannerlexer.l (chartext, stringtext): fix use of
388         backslashes so it will correctly parse '\\' and "\\"
389
390         * tests/scanner/annotation.c: add a use of '\\' to make sure that
391         this stays fixed
392
393         * giscanner/glibtransformer.py (GLibTransformer.count_type): typo
394
395 2008-10-02  Colin Walters  <walters@verbum.org>
396
397         bug 552393: Note variadic functions
398
399         * giscanner/scannerparser.y: Parse ellipsis.  Refactor grammar
400         to use parameter_list directly.
401         * giscanner/sourcescanner.h: Add ellipsis csymbol type.
402         * giscanner/ast.py: Add Varargs type.
403         * giscanner/transformer.py: Check for ellipsis symbol, transform
404         to varargs type.
405         * girepository/girnode.h: Add varargs flag to in-memory nodes.
406         Parse varargs functions, but filter them out before we start
407         compiling the typelib.
408
409 2008-10-02  Colin Walters  <walters@verbum.org>
410
411         Bug 554632: type tag for GType
412
413         * girepository/girepository.h, girepository/girepository.c:
414         Add type tag for GType - it's a special type we don't want
415         to resolve to just "long".
416         * docs/typelib-format.txt: Update.
417         * girepository/girparser.c: Parse it.
418         * giscanner/glibtransformer.py: Ensure we don't put GType in
419         the GObject.gir.
420         * tools/generate.c: Remove hardcoded type list.
421         * test/* update.
422
423 2008-09-30  Dan Winship  <danw@gnome.org>
424
425         Bug 554521: scanner generates wrong names for enum members with
426         full type name prefix
427
428         * giscanner/utils.py (strip_common_prefix): Fix this to strip the
429         right amount when the entire "first" string is a prefix of
430         "second"
431
432         * tests/scanner/foo.h (FooEnumFullname):
433         * tests/scanner/foo-expected.gir: test that
434
435 2008-09-29  Colin Walters  <walters@verbum.org>
436
437         Bug 552380: Array parameters should be marked in the gir
438
439         * giscanner/ast.py: Default char** to utf8[], and guchar* to
440         uint8[].  Add Array, List, and Map subclasses of Type;
441         these types can be generic.  Return transfer defaults
442         to true if return value is string or container type.
443         Delete Sequence type.
444         * giscanner/scannerlexer.l: Syntax change for annotations;
445         use <> since it's more readable.
446         * giscanner/girwriter.py: Write out these changes.
447         * giscanner/girparser.py: Parse them.
448         * giscanner/transformer.py: Have a defined set of
449         both list and map types.  When creating a type,
450         check if the ctype we've parsed is one of them,
451         if so create a container type subclass as appropriate.
452         * girepository/girparser.c: Parse in generic types.
453         * tests/*: Update.
454
455 2008-09-27  Colin Walters  <walters@verbum.org>
456
457         * tools/g-ir-scanner: Add --inject option.
458
459 2008-09-25  Colin Walters  <walters@verbum.org>
460
461         Remove non-repository types from GIR
462
463         * giscanner/ast.py: The canonical name is 'utf8', not
464         'string'.
465         * giscanner/glibast.py: A few more glib type mappings.
466         * girepository/girparser.c: We only parse repository types.
467         * tests/*.gir: Update.
468
469 2008-09-23  Colin Walters  <walters@verbum.org>
470
471         Bug 552566: Add time_t type
472
473         We need a type for time_t since it's special in C, and just
474         mapping it to long precluded bindings from handling it
475         in a nice way.
476
477 2008-09-19  Colin Walters  <walters@verbum.org>
478
479     Bug 552390: Handle capitialization like "DBus" more robustly
480
481     The to_underscores function was designed for use against prefixed
482     names; we need a separate function which will convert names like
483     DBusFoo into dbus_foo, not d_bus_foo.
484
485 2008-09-19  Colin Walters  <walters@verbum.org>
486
487     Add check to make sure we're not hitting out unresolved types
488
489     Validate the "this" argument for methods
490
491     Remove heuristic matching of methods to classes based on prefix
492
493     It was a broken hack that dated from when we handled underscoring
494     and capitalization conventions less well.
495
496 2008-09-18  Colin Walters  <walters@verbum.org>
497
498     Bug 522384: Use SHLIB_SUFFIX intead of G_MODULE_SUFFIX for Darwin
499
500     On Darwin, the suffix for installed shared libraries (.dylib) is
501     different from loadable modules (.so).  We use a bit of magic shell
502     script from Behdad Esfahbod to figure out the right suffix.
503
504 2008-09-15  Johan Dahlin  <johan@gnome.org>
505
506         * giscanner/sourcescanner.py (SourceType.type_qualifier): Add
507         a wrapper for type_qualifier as well.
508
509 2008-09-15  Colin Walters  <walters@verbum.org>
510
511         http://bugzilla.gnome.org/show_bug.cgi?id=552065
512
513         * giscanner/ast.py: Add deprecation attributes.
514         * giscanner/girwriter.py: Write out deprecation data.
515         * girepository/girparser.c: Relax parsing; deprecated
516         attribute now includes freeform string.
517         * giscanner/scannerlexer.l: Parse Deprecated.
518         * giscanner/transformer.py: Look for deprecated attribute
519         on functions.
520         * tests/scanner/*: Add a Deprecated test.
521
522 2008-09-14  Tor Lillqvist  <tml@novell.com>
523
524         * tests/scanner/Makefile.am (%.typelib): Use $(EXEEXT).
525
526 2008-09-14  Colin Walters  <walters@verbum.org>
527
528         * giscanner/glibtransformer.py: Ignore functions with 
529         leading _.
530
531 2008-09-12  Colin Walters  <walters@verbum.org>
532
533         * giscanner/glibtransformer.py: Accept Gtk.Type as GType.
534
535 2008-09-12  Colin Walters  <walters@verbum.org>
536
537         * giscanner/ast.py: Bind pid_t to INT for vte.
538
539 2008-09-12  Colin Walters  <walters@verbum.org>
540
541         * giscanner/girparser.py: Parse c:type for boxed records/unions.
542         * giscanner/glibast.py: Avoid overwriting ctype.
543         * giscsanner/transformer.py: Try resolving types using the GType names.
544
545 2008-09-12  Colin Walters  <walters@verbum.org>
546
547         * giscanner/minixpath.py: Code to run an "XPath"
548         assertion against an XML tree, taken from 
549         gir-repository/gir/tests.py.
550         * giscanner/Makefile.am: Ship it.
551         * tools/g-ir-scanner: Add --xpath-assertions option.
552         * gir/GLib-assertions.txt: Add a few assertions.
553         * gir/Makefile.am: Run them.
554
555 2008-09-11  Colin Walters  <walters@verbum.org>
556
557         http://bugzilla.gnome.org/show_bug.cgi?id=551737
558
559         * giscanner/transformer.py: Fix strip_namespace_func to only strip
560         prefix if it ends with _.  Tweak callback stripping to determine
561         based on presence of _ whether we need to use strip_namespace_func
562         or strip_namespace_object.
563
564 2008-09-09  Owen Taylor  <otaylor@redhat.com>
565
566         * docs/typelib-format.txt: Wether => Whether
567
568 2008-09-08  Colin Walters  <walters@verbum.org>
569
570         * girepository/girparser.c: Default to "readable" for properties.
571         * giscanner/ast.py: Add readable, writable etc.
572         * giscanner/girwriter.py: Writ them.
573         * giscanner/glibtransformer.py: Inspect them.
574         * tests/*: Update.
575
576 2008-09-07  Colin Walters  <walters@verbum.org>
577
578         * giscanner/cgobject.py: Add comment.
579
580 2008-09-07  Colin Walters  <walters@verbum.org>
581
582         * giscanner/cgobject.py: Also call g_thread_init.
583
584 2008-09-07  Colin Walters  <walters@verbum.org>
585
586         * giscanner/transformer.py: Fix regression by not
587         stripping prefix before stripping namespace for unions
588         either.
589
590 2008-09-06  Colin Walters  <walters@verbum.org>
591
592         * giscanner/transformer.py: If a namespace contains
593         multiple caps, try stripping both gnomekeyring_ and
594         gnome_keyring_.
595
596 2008-09-07  Johan Dahlin  <johan@gnome.org>
597
598         Bug 551162 – giscanner does not recognize asm and __asm__
599         * giscanner/scannerlexer.l:
600         Patch by Jani Monoses.
601
602 2008-09-06  Colin Walters  <walters@verbum.org>
603
604         * girepository/girnode.c: Allow gtype_name
605         and gtype_init in struct and union.
606         * girepository/girparser.c: Parse glib:
607         boxed bits for both structure and union.
608         * girepository/gtypelib.c: Don't barf
609         if structure is boxed.
610         * giscanner/girparser.py: Parse new XML
611         format.
612         * giscanner/girwriter.py: Write out new
613         XML format.
614         * giscanner/glibast.py: Define new classes
615         which are both Boxed and Struct/Union, as
616         well as an "Other" for everything else.
617         * giscanner/glibtransformer.py: Handle
618         boxed types specially; we try to merge
619         them with a struct/union if one exists,
620         otherwise fall back to generic boxed.
621         * tests/*: Update.
622         * tools/generate.c: Write out new format.
623
624 2008-09-06  Johan Dahlin  <johan@gnome.org>
625
626         * giscanner/grealpath.h: Include stdlib.h
627
628         * docs/g-ir-generate.1: Remove leading %
629
630 2008-09-01  Colin Walters  <walters@verbum.org>
631
632         * girepository/girparser.c: Look at c:type to determine
633         whether or not an item is a pointer.
634
635 2008-09-01  Johan Dahlin  <johan@gnome.org>
636
637         * tests/scanner/Makefile.am:
638         Set PYTHONPATH so the scanner can run
639         even if you didn't install anything.
640
641 2008-09-01  Johan Dahlin  <johan@gnome.org>
642
643         * configure.ac:
644         Post-release version bump
645
646 === 0.5.0 ===
647 2008-09-01  Johan Dahlin  <johan@gnome.org>
648
649         * NEWS: Update
650
651 2008-08-31  Colin Walters  <walters@verbum.org>
652
653         * giscanner/glibtransformer.py: Quiet info
654         prints for now.
655
656 2008-08-31  Johan Dahlin  <johan@gnome.org>
657
658         * configure.ac:
659         Bump version to 0.5.0
660
661 2008-08-31  Colin Walters  <walters@verbum.org>
662
663         * giscanner/glibtransformer.py: Follow aliases to ensure
664         we don't get a constructor returning a basic type.
665         * giscanner/transformer.py: Add function to follow aliases.
666         * tests/ Update.
667
668 2008-08-31  Johan Dahlin  <johan@gnome.org>
669
670         * giscanner/scannerlexer.l:
671         * giscanner/scannerparser.y:
672         * giscanner/sourcescanner.h:
673         * giscanner/sourcescanner.py:
674         Parse GCC extensions in the parser instead of just undeffing them
675         in the pre-processor.
676
677 2008-08-31  Johan Dahlin  <johan@gnome.org>
678
679         * giscanner/glibtransformer.py:
680         Clean up a huge if. Do not add methods or constructors
681         to enums/flags.
682         * giscanner/utils.py:
683         second might be longer than first, check that.
684
685 2008-08-31  Johan Dahlin  <johan@gnome.org>
686
687         * gir/Makefile.am:
688         Add a GModule.gir
689
690 2008-08-31  Colin Walters  <walters@verbum.org>
691
692         * girepository/girparser.c: Don't lose if we
693         have no includedirs
694
695 2008-08-31  Colin Walters  <walters@verbum.org>
696
697         * giscanner/glibtransformer.py: Look for libtool
698         library in current directory
699         * tests/scanner - Update.
700
701 2008-08-30  Colin Walters  <walters@verbum.org>
702
703         * docs/typelib-format.txt: Add a guint32
704         for dependencies.
705         * gir/Makefile.am: Dep on Makefile
706         * girepository/ginfo.c:
707         * girepository/girepository.c: Clean up
708         default typelib handling; remove global
709         default_typelib variable.  Ensure we handle
710         NULL repository in more places.
711         Support dependency resolution.
712         Support lazy loading.
713         * girepository/girepository.h: Remove
714         g_irepository_unregister; we don't support
715         unloading typelibs since really they're
716         process-global.  Update for lazy loading
717         API.
718         * girepository/girmodule.c: Use g_new0.
719         Add dependencies to GirModule.
720         * girepository/girparser.c: Parse dependencies.
721         * girepository/gtypelib.c: Add 4 bytes for
722         dependencies.
723         * tests/Makefile.am: Kill off gobject.gir,
724         it conflicts with the real one.
725         * tests/object.gir: Dep on GObject.
726         * tools/generate.c: Take --includedir
727         argument to say which directories to search
728         for typelibs.  Print out dependencies.
729
730 2008-08-30  Colin Walters  <walters@verbum.org>
731
732         * giscanner/glibtransformer.py: Reduce warning noise.
733
734 2008-08-29  Colin Walters  <walters@verbum.org>
735
736         * girepository/ginfo.c: Add some assertions regarding
737         refcounts, just to be sure.
738         * giscanner/glibtransformer.py: Blacklist a few more
739         odd Gio methods.
740
741 2008-08-29  Colin Walters  <walters@verbum.org>
742
743         * giscanner/glibtransformer.py: Blacklist a few
744         functions that use GError oddly
745
746 2008-08-29  Colin Walters  <walters@verbum.org>
747
748         * girepository/gtypelib.c: Don't crash if no
749         shlib is embedded
750
751 2008-08-29  Colin Walters  <walters@verbum.org>
752
753         * girepository/girparser.c: Handle chains of aliases
754         across modules by ensuring we fully qualify aliases
755         from includes.
756
757 2008-08-29  Colin Walters  <walters@verbum.org>
758
759         * girepository/girparser.c: Don't search aliases
760         for basic types.
761
762 2008-08-29  Colin Walters  <walters@verbum.org>
763
764         * girepository/girparser.c: Rewrite type parsing
765         to handle both GLib parsing case as well as correctly
766         handling GLib.List and friends.  Don't try to treat
767         e.g. ListStore as a List.
768
769 2008-08-29  Colin Walters  <walters@verbum.org>
770
771         * girepository/gtypelib.c: Add more context
772         during validate.
773
774 2008-08-29  Colin Walters  <walters@verbum.org>
775
776         * giscanner/glibtransformer.py: Add some informative
777         logging messages in corner cases.  Be sure we use
778         the most recent node set instead of a cache
779         when generating result set.
780         * tests/: Remove duplicated bits in expected girs
781         * girepository/girparser.c: Accept both List (for
782         compiling GLib) and GLib.List (what the scanner
783         generates).
784         * tests/ - Update.
785         * tools/generate.c: Generate canonical form.
786
787 2008-08-29  Johan Dahlin  <johan@gnome.org>
788
789         * giscanner/config.py.in:
790         Use datarootdir instead of datadir to avoid
791         an autoconf warning.
792
793 2008-08-29  Johan Dahlin  <johan@gnome.org>
794
795         * README:
796         * TODO:
797         * examples/gdk-pixbuf.gidl:
798         * libffi.pc.in:
799         Update and remove old cruft.
800
801 2008-08-29  Johan Dahlin  <johan@gnome.org>
802
803         * Makefile.am:
804         * docs/g-ir-compiler.1:
805         * docs/g-ir-generate.1:
806         * docs/g-ir-scanner.1:
807         Add man pages for the generator and compiler.
808
809 2008-08-29  Johan Dahlin  <johan@gnome.org>
810
811         * docs/g-ir-scanner.1: Document
812
813         * giscanner/Makefile.am:
814         * giscanner/gidlparser.py:
815         * giscanner/gidlwriter.py:
816         * tools/g-ir-scanner:
817         Remove gidl support.
818
819 2008-08-28  Colin Walters  <walters@verbum.org>
820
821         * tests/scanner/Makefile.am: Pass the right
822         --includedir args.  Add a Makefile dep.
823         * tools/compiler.c: Pass includedirs down.
824         * girepository/girparser.c: Actually put
825         includedirs in context, pass down.  Fix
826         locate_gir.
827
828 2008-08-28  Colin Walters  <walters@verbum.org>
829
830         * gir/Makefile.am: Use --includedir
831         * girepository/girparser.c: Recursively parse
832         includes to pull in aliases and expand them.
833         We need this to avoid putting unknown names in
834         the typelibs.
835         * tools/compiler.c: Add --includedir option.
836         * giscanner/ast.py: Map size/ssize to types
837         too.
838
839 2008-08-28  Tor Lillqvist  <tml@novell.com>
840
841         Make check now runs successfully on Windows.
842
843         * tools/compiler.c (write_out_typelib): Use binary mode for output
844         file on Windows.
845
846         * girepository/girnode.c: Don't print NULL strings.
847
848         * tests/invoke/Makefile.am
849         * tests/scanner/Makefile.am: Use -no-undefined on Windows to
850         convince libtool to build shared libraries.
851
852         * tests/invoke/invoke.c: Don't needlessly include <dlfcn.h>. Use
853         g_assert() instead of printing out expected errors.
854
855 2008-08-28  Tor Lillqvist  <tml@novell.com>
856
857         * girepository/gtypelib.h: Change type of bitfield fields from
858         guint to the most suitable smaller type. This makes the struct
859         sizes match the ones on Linux that the sanity check expects when
860         using gcc -mms-bitfields on Windows.
861
862 2008-08-28  Johan Dahlin  <johan@gnome.org>
863
864         * Makefile.am:
865         * configure.ac:
866         * gir/Makefile.am:
867         * giscanner/Makefile.am:
868         * tests/Makefile.am:
869         * tests/scanner/Makefile.am:
870         Make distcheck pass.
871
872 2008-08-27  Johan Dahlin  <johan@gnome.org>
873
874         * giscanner/Makefile.am:
875         Only send in -no-undefined on Win32 as it breaks on MacOS X.
876
877 2008-08-27  Tor Lillqvist  <tml@novell.com>
878
879         Make g-ir-scanner work on Windows. Still problems with the typelib
880         code. Changes okayed by jdahlin.
881
882         * configure.ac: Check for Windows, set Automake conditional
883         OS_WIN32. Change backslashes to forward slashes in pyexecdir to
884         avoid shell quoting issues
885         
886         * girepository/Makefile.am: Use -no-undefined so that libtool
887         agrees to build a shared library on Windows.
888
889         * girepository/girparser.c (backtrace_stderr): No backtrace() on
890         Windows. Empty implementation on Windows so far.
891
892         * girepository/gtypelib.c (g_typelib_check_sanity): Give more
893         informative error message for the assertion failures. Tell also
894         what the expected size of the struct is. Check all sizes first and
895         fail afterwards if at least one size was different from expected.
896
897         * tools/Makefile.am: Reorder libraries into proper logical
898         dependency order.
899
900         * tools/generate.c: Don't include <dlfcn.h>, not used.
901
902         * giscanner/Makefile.am: On Windows, link with the Python library,
903         and install the module DLL as _giscanner.pyd. Remove the
904         unnecessary import library and libtool library that libtool has
905         installed.
906
907         * giscanner/scannerlexer.l: Recognize the gcc __attribute__ syntax
908         and just skip it. Recognize also two "l" suffixes for long long
909         constants. Recognize also __inline__.
910
911         * giscanner/grealpath.h (g_realpath): Implement on Windows, using
912         GetFullPathName(). As such, GetFullPathName() does more than the
913         UNIX realpath(). It also changes relative paths into absolute
914         paths. But for our purposes that shouldn't matter.
915
916         * giscanner/giscannermodule.c (pygi_source_scanner_parse_file): On
917         Windows the file descriptor passed to us is from Python. Python
918         Python2.5 uses the msvcr71.dll C library, while mingw-built code
919         uses msvcrt.dll. On Windows, file descriptors are specific to
920         which C library is used. So we must find out what underlying OS
921         handle corresponds to the file descriptor Python passes us, and
922         then make that into a file descriptor valid for the C library this
923         code uses.
924
925         * giscanner/sourcescanner.py (_parse): Don't need to bypass
926         __attribute__ as the lexer now handles it. The definition as empty
927         was ineffective for mingw anyway, as mingw's _mingw.h undefines
928         __attribute__. Close the temp file before unlinking it.
929
930         * giscanner/cgobject.py: Use correct library name for the gobject
931         DLL on Windows.
932
933         * gir/Makefile.am: Must pass the full basename of the DLLs on
934         Windows to g-ir-scanner. It's a bit ugly that we have to "know"
935         that the names of the GLib DLLs are like libglib-2.0-0.dll, but in
936         reality they won't change, until there is a GLib 3, and then also
937         the Unix code here needs changing.
938
939         Must pass CPPFLAGS to g-ir-scanner when building GLib.gir so that
940         libintl.h is found.
941
942 2008-08-26  Colin Walters  <walters@verbum.org>
943
944         * girepository/girepository.c: Search
945         $DATADIR/girepository instead of
946         $DATADIR/gitypelibs; this naming makes
947         it clearer that e.g. jgir can install
948         .jars there.
949         * gir/Makefile.am: Install there.
950
951 2008-08-26  Colin Walters  <walters@verbum.org>
952
953         * girepository/gtypelib.c (_g_typelib_init): Also
954         use G_MODULE_SUFFIX instead of hardcoding .so.
955
956 2008-08-26  Colin Walters  <walters@verbum.org>
957
958         * girepository/gtypelib.c (_g_typelib_init): Free
959         string in the right place.
960
961 2008-08-26  Colin Walters  <walters@verbum.org>
962
963         * girepository/gtypelib.c (_g_typelib_init): Handle
964         both .la and .so names; this works better in the
965         uninstalled library case.
966
967 2008-08-26  Johan Dahlin  <johan@gnome.org>
968
969         * gir/Makefile.am:
970         * giscanner/Makefile.am:
971         * giscanner/cgobject.py:
972         * giscanner/config.py.in:
973         * giscanner/sourcescanner.py:
974         Avoid undeffing __GNUC__, instead define
975         __attribute__ & friends. Remove glibconfig.h hack.
976         This makes gobject-introspection work better on
977         MacOS X, Thanks to Richard Hult for kind help.
978
979 2008-08-25  Colin Walters  <walters@verbum.org>
980
981         * giscanner/glibtransformer.py: Always print
982         statistics.
983
984 2008-08-25  Colin Walters  <walters@verbum.org>
985
986         * giscanner/glibtransformer.py: Skip over
987         interfaces we don't know.
988
989 2008-08-25  Colin Walters  <walters@verbum.org>
990
991         * girepository/girparser.c: Parse new implements
992         syntax, drop gapi one.
993         * tests/object.gir: Update.
994         * tools/generate.c: Generate new syntax.
995
996 2008-08-25  Colin Walters  <walters@verbum.org>
997
998         * giscanner/ast.py: Add interfaces property
999         to class.
1000         * giscanner/girwriter.py: Write out implemented
1001         interfaces.
1002         * giscanner/glibtransformer.py: Introspect
1003         implemented interfaces.
1004         * tests/scanner/*: Make FooObject implement
1005         FooInterface.
1006
1007 2008-08-25  Colin Walters  <walters@verbum.org>
1008
1009         * giscanner/glibtransformer.py: More correctly pair
1010         methods; if we have a symbol that starts with
1011         e.g. hippo_canvas look for a matching HippoCanvas
1012         class before accepting e.g. HippoCanvasImage.
1013
1014 2008-08-24  Colin Walters  <walters@verbum.org>
1015
1016         * tools/g-ir-scanner: Filter out unknown options from
1017         pkg-config files.
1018
1019 2008-08-24  Colin Walters  <walters@verbum.org>
1020
1021         * giscanner/glibtransformer.py: Fail with better
1022         error if we can't find library.
1023
1024 2008-08-24  Colin Walters  <walters@verbum.org>
1025
1026         * tools/g-ir-scanner: Use subprocess instead of
1027         commands, works on Windows and avoids the evil
1028         shell on Unix.
1029
1030 2008-08-24  Colin Walters  <walters@verbum.org>
1031
1032         * giscanner/glibtransformer.py: Skip over
1033         g_object_get_type from GLib trunk.
1034
1035 2008-08-24  Colin Walters  <walters@verbum.org>
1036
1037         * girepository/girepository.c (g_irepository_require): 
1038         Don't open shared library here; we already do it
1039         in gtypelib.c.
1040
1041 2008-08-24  Colin Walters  <walters@verbum.org>
1042
1043         * girepository/gtypelib.c: Add context stack so
1044         when we get an error we can print out nicely
1045         where it is.
1046
1047 2008-08-24  Johan Dahlin  <johan@gnome.org>
1048
1049         * girepository/girparser.c (start_glib_boxed), (start_function),
1050         (start_field), (start_alias):
1051         Refactor a couple of parsing functions to be simpler to follow.
1052         Avoid huge ifs.
1053
1054 2008-08-24  Johan Dahlin  <johan@gnome.org>
1055
1056         * girepository/girparser.c (start_function):
1057         Remove left-over code, checking type of function.
1058
1059 2008-08-23  Colin Walters  <walters@verbum.org>
1060
1061         * giscanner/config.py: Define DATADIR.
1062         * giscanner/transformer.py: Look in DATADIR.
1063
1064 2008-08-23  Colin Walters  <walters@verbum.org>
1065
1066         * girepository/gtypelib.c: Check constructor
1067         returns.
1068         * girepository/girnode.c: Small tweaks.
1069         * girepository/ginfo.c: Calculate signature offsets
1070         more robustly.
1071         * girepository/girparser.c: Remove duplicate
1072         start_boxed.
1073         * giscanner/glibtransformer.py: Avoid marking
1074         functions which return a basic type as
1075         constructors.
1076
1077 2008-08-23  Colin Walters  <walters@verbum.org>
1078
1079         * girepository/girparser.c: Ignore <include>.
1080         * giscanner/girparser.py: Parse them.
1081         * giscanner/girwriter.py: Generate them.
1082         * giscanner/transformer.py: Process <include>
1083         recursively.  Don't require full path for
1084         includes, look in {$XDG_DATA_DIRS}/gir.
1085         * tools/g-ir-scanner: Pass through includes.
1086         * Makefile.am: Remove extra --include
1087         args for scanner.
1088         * *-expected.gir: Add expected includes.
1089
1090 2008-08-23  Johan Dahlin  <johan@gnome.org>
1091
1092         * tests/scanner/Makefile.am:
1093         * tests/scanner/annotation-expected.gir:
1094         * tests/scanner/drawable-expected.gir:
1095         Avoid duplication in the Makefile, regenerate with new
1096         namespaces (same as the filename)
1097
1098 2008-08-22  Colin Walters  <walters@verbum.org>
1099
1100         * girepository/girnode.c: Don't hardcode integers,
1101         use GITypeTag.
1102
1103 2008-08-22  Johan Dahlin  <johan@gnome.org>
1104
1105         * giscanner/sourcescanner.py:
1106         Check for ../gobject-introspection-1.0.pc.in to determine
1107         if we run installed or uninstalled.
1108
1109 2008-08-22  Johan Dahlin  <johan@gnome.org>
1110
1111         * gir/Makefile.am:
1112         * giscanner/sourcescanner.py:
1113         Send in undefs/defines via writing it directly to stdin
1114         of cpp instead of via arguments.
1115
1116 2008-08-22  Colin Walters  <walters@verbum.org>
1117
1118         * tools/generate.c, tools/compiler.c: Default
1119         to --raw.
1120         * all Makefile.am: Update.
1121
1122 2008-08-22  Colin Walters  <walters@verbum.org>
1123
1124         * girepository/girparser.c: Pass through
1125         recursive types.  Avoid overwriting errors.
1126         * giscanner/xmlwriter.py: Always write the
1127         XML header.
1128         * tests/*.gir: Adjust.
1129         * tests/scanner/Makefile.am: Build typelibs,
1130         and generate XML from those.  Once we
1131         have a good diff mechanism...
1132         * tests/scanner/*-expected.gir: Add XML
1133         header.
1134         * tools/g-ir-scanner: Accept --typelib-xml
1135         option.
1136         * tools/generate.c: Better defaults for transfer.
1137
1138 2008-08-22  Johan Dahlin  <johan@gnome.org>
1139
1140         * configure.ac:
1141         * gir/Makefile.am:
1142         * giscanner/Makefile.am:
1143         * giscanner/config.py.in:
1144         * giscanner/sourcescanner.py:
1145         Use the generated glibconfig.h for all scanner invokations.
1146         Rename it to glibconfig-scanner.h and install it.
1147         Add a config.py which so far contains the include dir.
1148
1149 2008-08-22  Johan Dahlin  <johan@gnome.org>
1150
1151         * gir/Makefile.am:
1152         Replace glibconfig.h with our own, do some replacement
1153         for CPP/C features we do not support
1154
1155 2008-08-22  Colin Walters  <walters@verbum.org>
1156
1157         * tools/generate.c (write_callable_info): Fix unref
1158         sequence.
1159
1160 2008-08-22  Colin Walters  <walters@verbum.org>
1161
1162         * gobject-introspection-1.0.pc.in: Add g-ir-generate.
1163         * tests/Makefile.am: Support $(DEBUG)
1164         * tools/generate.c: Do immediate close tags if no
1165         sub-elements.
1166
1167 2008-08-21  Colin Walters  <walters@verbum.org>
1168
1169         * tests/scanner/drawable-expected.gir,
1170         * tests/scanner/drawable.c,
1171         * tests/scanner/drawable.h:
1172         Add a method.
1173
1174 2008-08-21  Colin Walters  <walters@verbum.org>
1175
1176         * giscanner/glibtransformer.py: Compute prefix
1177         by searching through the symbol for bits
1178         rather than going directly from ctype; this fixes
1179         webkit_ namespace.
1180
1181 2008-08-21  Colin Walters  <walters@verbum.org>
1182
1183         * giscanner/glibtransformer.py: Also try squashing
1184         underscores from namespace, fixes webkit_web_view_new.
1185
1186 2008-08-21  Colin Walters  <walters@verbum.org>
1187
1188         * giscanner/glibtransformer.py: More ctor work,
1189         avoid having gtk_window_group_new end up under
1190         GtkWindow.
1191
1192 2008-08-21  Colin Walters  <walters@verbum.org>
1193
1194         * giscanner/glibtransformer.py: Much simpler approach
1195         of mapping uscored names to classes.
1196         * giscanner/utils.py: Remove unnecessary function.
1197
1198 2008-08-21  Johan Dahlin  <johan@gnome.org>
1199
1200         * girepository/girepository.c (g_irepository_require):
1201         Plug memory leak and avoid using freed memory.
1202         Resolve the whole module path, here as well.
1203
1204 2008-08-21  Colin Walters  <walters@verbum.org>
1205
1206         * giscanner/glibtransformer.py: Look up all permutations
1207         of class names when scanning methods/ctors based on
1208         the prefix instead of using the return value.  This
1209         associates gtk_window_new with the right class.
1210
1211 2008-08-21  Colin Walters  <walters@verbum.org>
1212
1213         * girepository/girmodule.c (g_ir_module_build_typelib): 
1214         Revert change to increment header_size; we do that in
1215         write_string.
1216
1217 2008-08-21  Colin Walters  <walters@verbum.org>
1218
1219         * girepository/girnode.c (write_string): Tweak to
1220         use UINT instead of INT.  Not likely to matter.
1221         * girepository/girmodule.c (g_ir_module_build_typelib):
1222         Add to header_offset as well for header strings
1223         to match what write_string does.
1224         * girepository/gtypelib.c: Replace is_name with
1225         validate_name, which more strongly validates and
1226         handles errors in a better way.  Update all callers.
1227         * giscanner/glibtransformer.py: Handle constructors
1228         better.
1229
1230 2008-08-21  Johan Dahlin  <johan@gnome.org>
1231
1232         * gir/Makefile.am (typelibs_DATA): Build and 
1233         install the Gio.typelib too
1234
1235         * girepository/gtypelib.c (_g_typelib_init):
1236         Use g_module_build_path to resolve the shlib name
1237
1238 2008-08-21  Colin Walters  <walters@verbum.org>
1239
1240         * gir/Makefile.am: CLEANFILES typelibs too.
1241
1242 2008-08-21  Johan Dahlin  <johan@gnome.org>
1243
1244         * giscanner/glibtransformer.py:
1245         Do not send .la files through find_library.
1246
1247 2008-08-21  Colin Walters  <walters@verbum.org>
1248
1249         * girepository/girparser.c (g_irepository_require):
1250         Fix one small leak in error case.
1251
1252 2008-08-21  Johan Dahlin  <johan@gnome.org>
1253
1254         * gir/Makefile.am:
1255         Parse glibconfig.h as well and install the compiled
1256         typelib
1257
1258 2008-08-21  Johan Dahlin  <johan@gnome.org>
1259
1260         * gir/Makefile.am:
1261         * giscanner/glibtransformer.py:
1262         * tools/g-ir-scanner:
1263         Do not hard-core library names in the Makefile, reuse
1264         ctypes find_library instead.
1265
1266 2008-08-21  Johan Dahlin  <johan@gnome.org>
1267
1268         * girepository/girparser.c (resolve_aliases):
1269         Remove compilation warnings
1270
1271 2008-08-21  Johan Dahlin  <johan@gnome.org>
1272
1273         * girepository/girepository.c (g_irepository_require):
1274         Rewrap and fix double free bug by leaking a bit.
1275
1276 2008-08-20  Colin Walters  <walters@verbum.org>
1277
1278         * girepository/girepository.c: Add new function
1279         g_irepository_get_typelib_path which tells
1280         us from where we loaded a namespace.
1281
1282 2008-08-20  Colin Walters  <walters@verbum.org>
1283
1284         * tests/scanner/*-expected.gir: Adjust for
1285         added shared-library.
1286         * giscanner/giwriter.py: Make pylint happy.
1287
1288 2008-08-20  Colin Walters  <walters@verbum.org>
1289
1290         * girepository/girmodule.c (g_ir_module_build_typelib):
1291         Calculate size correctly, avoid use-after-free.
1292
1293 2008-08-20  Colin Walters  <walters@verbum.org>
1294
1295         * girepository/girepository.c: Remove
1296         g_irepository_register_file in favor of
1297         g_irepository_require.  There are two
1298         possible deployment scenarios for typelibs:
1299         First, separate in $DATADIR/gitypelibs/.  Second,
1300         they may be embedded in shlibs.  However since
1301         the first is now the normal case, the API is
1302         optimized around it.
1303
1304         Refactor internals to look up typelibs for
1305         namespaces just-in-time, but we expect
1306         consumers to call g_irepository_require.
1307
1308         Also, add some docs.  No one has died from that
1309         before.
1310         * gir/Makefile.am: Need --library for glib.
1311         * giscanner/girwriter.py: Write out shared-library.
1312         * tools/g-ir-writer: Take the first --library
1313         argument as the target of shared-library.  In
1314         the future we should make this nicer with pkg-config
1315         probably.
1316
1317 2008-08-20  Colin Walters  <walters@verbum.org>
1318
1319         * girepository/girparser.py: And parse them.
1320
1321 2008-08-20  Johan Dahlin  <johan@gnome.org>
1322
1323         * giscanner/glibast.py: Add gshort/gushort types
1324
1325 2008-08-20  Colin Walters  <walters@verbum.org>
1326
1327         * gir/Makefile.am: Rename .gir files using GI namespace.
1328         * girepository/girepository.c: Use XDG_DATA_DIRS for
1329         looking up typelibs.  Also typelibs are now suffixed
1330         with .typelib.
1331         * tests/invoke/Makefile.am: Only use metadata.
1332         * girepository/Makefile.am: Remove unnecessary include.
1333         * tests/scanner/Makefile.am: Update using GI namespaces
1334         for scanner includes.
1335
1336 2008-08-20  Colin Walters  <walters@verbum.org>
1337
1338         * girepository/transformer.py: Suppress aliases whose
1339         name is a builtin.
1340         * girepository/ast.py: Define some more aliases.
1341
1342 2008-08-20  Colin Walters  <walters@verbum.org>
1343
1344         * girepository/girparser.c: Avoid alias infloops.
1345
1346 2008-08-20  Colin Walters  <walters@verbum.org>
1347
1348         * tests/scanner/foo-expected.gir: Fix expected list type.
1349
1350 2008-08-20  Johan Dahlin  <johan@gnome.org>
1351
1352         * giscanner/glibtransformer.py (GLibTransformer._resolve_type_name): 
1353         Add a workaround for #548689.
1354         We can now compile gtk!
1355
1356 2008-08-20  Colin Walters  <walters@verbum.org>
1357
1358         * giscanner/glibtransformer.py: Try to look up
1359         aliases using the c:type too.
1360
1361 2008-08-20  Colin Walters  <walters@verbum.org>
1362
1363         * girepository/girparser.c: Parse union fields.
1364
1365 2008-08-20  Johan Dahlin  <johan@gnome.org>
1366
1367         * giscanner/ast.py: Make time_t an alias for long
1368
1369         * gir/gio-2.0-good.gir:
1370         * gir/glib-2.0-good.gir:
1371         * gir/gobject-2.0-good.gir:
1372         Regnerate
1373         * giscanner/glibtransformer.py:
1374         Do not delete Class structures, we need them in gdk/gtk.
1375         * tests/scanner/drawable-expected.gir:
1376         * tests/scanner/foo-expected.gir:
1377         * tests/scanner/utility-expected.gir:
1378         Update tests.
1379
1380 2008-08-20  Johan Dahlin  <johan@gnome.org>
1381
1382         * tests/scanner/Makefile.am:
1383         * tests/scanner/annotation-expected.gir:
1384         * tests/scanner/annotation.c (annotation_object_class_init),
1385         (annotation_object_init), (annotation_object_method),
1386         (annotation_object_in), (annotation_object_out),
1387         (annotation_object_inout), (annotation_object_inout2),
1388         (annotation_object_inout3), (annotation_object_calleeowns),
1389         (annotation_object_calleesowns), (annotation_object_get_strings),
1390         (annotation_object_with_voidp), (annotation_object_get_objects),
1391         (annotation_object_create_object), (annotation_object_allow_none):
1392         * tests/scanner/annotation.h:
1393         * tests/scanner/foo-expected.gir:
1394         * tests/scanner/foo.c:
1395         * tests/scanner/foo.h:
1396         Split out annotation tests out of foo
1397
1398 2008-08-20  Johan Dahlin  <johan@gnome.org>
1399
1400         * tests/scanner/Foo-expected.gir:
1401         * tests/scanner/Makefile.am:
1402         * tests/scanner/foo-expected.gir:
1403         * tests/scanner/foo-object.h:
1404         * tests/scanner/foo.c:
1405         Foo->foo, foo-object.h -> foo.h
1406
1407 2008-08-20  Johan Dahlin  <johan@gnome.org>
1408
1409         * tests/scanner/Foo-expected.gir:
1410         * tests/scanner/Makefile.am:
1411         * tests/scanner/drawable-expected.gir:
1412         * tests/scanner/drawable.c (test_drawable_class_init),
1413         (test_drawable_init):
1414         * tests/scanner/drawable.h:
1415         * tests/scanner/foo-object.h:
1416         * tests/scanner/foo.c (foo_boxed_method):
1417         Move the drawable parts out of Foo to its own test.
1418
1419 2008-08-20  Johan Dahlin  <johan@gnome.org>
1420
1421         * tests/scanner/Foo-expected.gir:
1422         * tests/scanner/foo-object.h:
1423         * tests/scanner/foo.c (foo_drawable_class_init),
1424         (foo_drawable_init):
1425         Add a based on GdkDrawable which generates
1426         a broken gir.
1427
1428 2008-08-19  Colin Walters  <walters@verbum.org>
1429
1430         * giscanner/transformer.py: Don't try
1431         to strip prefix before namespace.
1432
1433 2008-08-19  Johan Dahlin  <johan@gnome.org>
1434
1435         * giscanner/transformer.py:
1436         * tests/scanner/Foo-expected.gir:
1437         * tests/scanner/foo-object.h:
1438         Add support for typedef void foo type of
1439         aliases.
1440
1441 2008-08-19  Johan Dahlin  <johan@gnome.org>
1442
1443         * giscanner/ast.py:
1444         * giscanner/girwriter.py:
1445         * giscanner/glibtransformer.py:
1446         * giscanner/transformer.py:
1447         * tests/scanner/Foo-expected.gir:
1448         Add basic support for union, base the code much
1449         on Struct. Add a testcase.
1450
1451 2008-08-19  Johan Dahlin  <johan@gnome.org>
1452
1453         * tests/scanner/Foo-expected.gir:
1454         * tests/scanner/foo-object.h:
1455         Add a union testcase which the compiler currently
1456         barfs at.
1457
1458 2008-08-19  Johan Dahlin  <johan@gnome.org>
1459
1460         * gobject-introspection-1.0.pc.in:
1461         Add a g_ir_compiler variable
1462
1463 2008-08-19  Colin Walters  <walters@verbum.org>
1464
1465         * giscanner/ast.py: Rework types to be more closely
1466         based on GITypeTag.
1467         * giscanner/girparser.py: Parse more bits.
1468         * giscanner/girwriter.py: Write sequences in a new
1469         way that specifies container type.
1470         * giscanner/glibast.py: Adjust for ast.py changes,
1471         add 'ctype' property to GLibObject and GLibInterface
1472         so we can look things up by it later.
1473         * gicanner/transformer.py: Names is new class holding
1474         the various namespaces we manage.  Do not confuse
1475         with Namespace which is toplevel XML node effectively.
1476         Rework all type resolution to go through
1477         _resolve_type_name_1.
1478         * giscanner/glibtransformer.py: Raise UnknownTypeError
1479         instead of ValueError for cleanliness.  Add Unresolved
1480         class to mark types whose parent we haven't seen yet.
1481         Use new Names object from transformer.py.
1482         Correctly look up parent=.
1483         Fix type validation to handle sequences.
1484         * tests/scanner/Foo-expected.gir: Update for sequence
1485         work, int instead of int32.
1486         * tools/g-ir-scanner: Add --noclosure option
1487         * gir/Makefile.am: Use --noclosure by default for
1488         GLib/GObject.
1489
1490 2008-08-18  Johan Dahlin  <johan@gnome.org>
1491
1492         * gir/gio-2.0-good.gir:
1493         * gir/glib-2.0-good.gir:
1494         * gir/gobject-2.0-good.gir:
1495         Regenerate.
1496
1497 2008-08-18  Johan Dahlin  <johan@gnome.org>
1498
1499         * giscanner/ast.py:
1500         * giscanner/girparser.py:
1501         * giscanner/girwriter.py:
1502         * giscanner/glibast.py:
1503         * giscanner/glibtransformer.py:
1504         * giscanner/transformer.py:
1505         * tests/scanner/Foo-expected.gir:
1506         * tests/scanner/foo-object.h:
1507         * tests/scanner/utility-expected.gir:
1508         * tests/scanner/utility.h:
1509         Redo type resolving and validation.
1510         Add a couple of new tests.
1511         Patch mostly written by Colin.
1512
1513 2008-08-18  Johan Dahlin  <johan@gnome.org>
1514
1515         * gir/Makefile.am:
1516         * giscanner/girparser.py:
1517         Set ctype of enums
1518         * giscanner/transformer.py:
1519         Improve enum parsing for enums without a GType.
1520         Make flags/enum references to other girs work
1521         * giscanner/utils.py:
1522         Simplify this a bit
1523         * tests/scanner/Makefile.am:
1524         * tests/scanner/foo-object.h:
1525         * tests/scanner/utility-expected.gir:
1526         * tests/scanner/utility.h:
1527         Add a new test for external enum references
1528
1529 2008-08-18  Johan Dahlin  <johan@gnome.org>
1530
1531         * docs/global-module-registry.txt: Update
1532
1533         * tests/array.gir: Update with new type proposal
1534
1535         * girepository/girepository.c (g_type_tag_to_string):
1536         * girepository/girepository.h:
1537         * girepository/girnode.c (g_ir_node_get_full_size_internal),
1538         (find_entry_node):
1539         * girepository/girnode.h:
1540         Make enum serializing functions public. Clean up some whitespace.
1541
1542 2008-08-17  Johan Dahlin  <johan@gnome.org>
1543
1544         * docs/global-module-registry.txt:
1545         Add a document for an on disk module registry format
1546
1547 2008-08-17  Johan Dahlin  <johan@gnome.org>
1548
1549         * gir/Makefile.am:
1550         * gir/gio-2.0-good.gir:
1551         Add a gio gir.
1552
1553 2008-08-17  Johan Dahlin  <johan@gnome.org>
1554
1555         * gir/Makefile.am:
1556         * gir/glib-2.0-good.gir:
1557         * gir/gobject-2.0-good.gir:
1558         * giscanner/cgobject.py:
1559         * giscanner/glibtransformer.py:
1560         Regenerate GObject & GType.
1561         Avoid warnings when generating gobject-2.0.gir.
1562         Introspect a little more, and skip *_get_type functions.
1563
1564 2008-08-17  Colin Walters  <walters@verbum.org>
1565
1566         * gir/glib-2.0.gir, gir/gobject-2.0.gir:
1567         Rename to -good, always generate during build.
1568         * gir/Makefile.am: Ensure .gir files dep on
1569         all scanner sources.
1570         * Makefile.am: Switch build order to ensure
1571         the scanner is ready before we do gir/.
1572         * tools/g-ir-scanner: Look for .git too.
1573
1574 2008-08-17  Johan Dahlin  <johan@gnome.org>
1575
1576         * girepository/gtypelib.c (validate_enum_blob):
1577         * giscanner/glibtransformer.py:
1578         * giscanner/transformer.py:
1579         Remove resolve_possible_typedefs, it was unused.
1580         Allow multiple enum values of the sample value in an enum,
1581         since it's actually pretty common.
1582         Register enums so they can be resolved too.
1583
1584 2008-08-16  Johan Dahlin  <johan@gnome.org>
1585
1586         * giscanner/girparser.py:
1587         Parse enumeration/bitfield.
1588
1589 2008-08-16  Johan Dahlin  <johan@gnome.org>
1590
1591         * giscanner/girparser.py:
1592         Parse boxed types.
1593
1594 2008-08-16  Johan Dahlin  <johan@gnome.org>
1595
1596         * giscanner/glibtransformer.py:
1597         Resolve type names for alias targets
1598         * giscanner/transformer.py:
1599         Skip FILE* parameters fow now
1600
1601 2008-08-16  Johan Dahlin  <johan@gnome.org>
1602
1603         * gir/glib-2.0.gir:
1604         * gir/gobject-2.0.gir:
1605         Regenerate
1606
1607         * tests/scanner/Makefile.am:
1608         parser -> scanner
1609
1610 2008-08-15  Colin Walters  <walters@verbum.org>
1611
1612         * giscanner/glibtransformer.py: Explicitly construct
1613         new list, since we're deleting as we iterate.
1614         Don't delete all structures which end in Class; just
1615         ones which have a paired GObject.
1616         Fix printing of type warning.
1617         * giscanner/transformer.py: Make strip_namespace_object
1618         be the identity function if it doesn't match the 
1619         namespace.
1620
1621 2008-08-15  Colin Walters  <walters@verbum.org>
1622
1623         * giscanner/cgobject.py: Define yet more argument
1624         prototypes; fix prototype for g_type_fundamental.
1625
1626 2008-08-14  Johan Dahlin  <johan@gnome.org>
1627
1628         * tests/Makefile.am:
1629         * tests/constant.gir:
1630         * tests/gobject.gir:
1631         * tests/struct.gir:
1632         * tools/generate.c (write_struct_info):
1633         Fix generator for constant/gobject/struct
1634
1635 2008-08-14  Johan Dahlin  <johan@gnome.org>
1636
1637         * tests/Makefile.am:
1638         * tests/enum.gir:
1639         * tools/generate.c (write_enum_info):
1640         Fix generation of enum/bitfields
1641
1642 2008-08-14  Johan Dahlin  <johan@gnome.org>
1643
1644         * girepository/girparser.c (start_field), (start_constant),
1645         (start_type), (end_element_handler):
1646         Clear up constant parsing
1647
1648         * tests/object.gir:
1649         Update
1650
1651         * tools/generate.c (write_callable_info), (write_function_info),
1652         (write_callback_info), (write_constant_info), (write_signal_info),
1653         (write_vfunc_info), (write_property_info), (write_object_info),
1654         (write_interface_info):
1655         Constants/Signals are handled now.
1656
1657 2008-08-14  Johan Dahlin  <johan@gnome.org>
1658
1659         * girepository/girparser.c (start_type):
1660         Don't require c:type.
1661         * tests/Makefile.am:
1662         Test boxed.gir
1663         * tests/boxed.gir:
1664         Update, remove parts we don't support yet
1665         * tests/roundtrips.sh:
1666         Remove
1667         * tools/generate.c (write_type_info), (write_field_info),
1668         (write_callable_info), (write_struct_info):
1669         Make it emit proper gir.
1670
1671 2008-08-14  Johan Dahlin  <johan@gnome.org>
1672
1673         * giscanner/transformer.py:
1674         New internal function for adding a new node.
1675
1676 2008-08-14  Johan Dahlin  <johan@gnome.org>
1677
1678         * gir/Makefile.am:
1679         Define an internal _H_ variable so we skip parsing both
1680         i18n headers, only one is needed.
1681         * gir/glib-2.0.gir:
1682         Add the glib-2.0.gir too.
1683         * giscanner/glibast.py:
1684         Add gconstpointer as an alias for ANY
1685         * giscanner/transformer.py:
1686         Do not lower case enumeration names per se.
1687         Skip functions which has parameters called 'va_list'
1688
1689 2008-08-14  Colin Walters  <walters@verbum.org>
1690
1691         * giscanner/transformer.py: Comment data structures.
1692         Also squash pointers in resolve_type_name to correspond
1693         with what we do for params.
1694         * giscanner/glibtransformer.py: Print warnings in more
1695         situations.  Rework checks for method/constructor to
1696         look up in our GType database instead of just checking
1697         for *.   Avoid generating <record> for GObject which
1698         duplicate the <class>.
1699         * gir/Makefile.am: Generate glib-2.0.gir and gobject-2.0.gir
1700         in here.
1701
1702 2008-08-14  Johan Dahlin  <johan@gnome.org>
1703
1704         * giscanner/girwriter.py:
1705         * giscanner/glibast.py:
1706         * giscanner/glibtransformer.py:
1707         * giscanner/transformer.py:
1708         * misc/pyflakes.py:
1709         * tests/Makefile.am:
1710         Add pyflakes.py and run it in make check.
1711         Update the source code to fix the errors reported by
1712         pyflakes.
1713
1714 2008-08-14  Johan Dahlin  <johan@gnome.org>
1715
1716         * giscanner/ast.py:
1717         * giscanner/girparser.py:
1718         * giscanner/glibast.py:
1719         * giscanner/glibtransformer.py:
1720         Refactor the parser a bit.
1721         Add parent type to interfaces and update callsites.
1722
1723 2008-08-14  Johan Dahlin  <johan@gnome.org>
1724
1725         * giscanner/glibtransformer.py:
1726         * giscanner/utils.py:
1727         Refactor a bit, avoid isinstance and add a method
1728         for each type we parse.
1729
1730 2008-08-14  Johan Dahlin  <johan@gnome.org>
1731
1732         * giscanner/ast.py:
1733         * giscanner/girparser.py:
1734         * giscanner/glibtransformer.py:
1735         * tests/Makefile.am:
1736         Run pep8.py in make check, fix old errors.
1737
1738 2008-08-13  Colin Walters  <walters@verbum.org>
1739
1740         * giscanner/girparser.py: Parse records.
1741
1742 2008-08-13  Colin Walters  <walters@verbum.org>
1743
1744         * gir/Makefile.am: Install again.
1745         * gir/gobject-2.0.gir: Add some more bits.
1746
1747 2008-08-13  Colin Walters  <walters@verbum.org>
1748
1749         * gir/gobject-2.0.gir: Use correct namespace, add GType.
1750         * giscanner/girparser.py: Handle aliases.
1751         * giscanner/transformer.py: Record aliases.  Make resolver
1752         functions public; we now call into these explicitly from
1753         glibtransformer.  Handle resolving aliases.
1754         * giscanner/glibtransformer.py: Separate our internal namespace
1755         from included ones.  Call up into transformer's resolver functions.
1756
1757 2008-08-13  Johan Dahlin  <johan@gnome.org>
1758
1759         * girepository/girnode.c (g_ir_node_get_full_size_internal):
1760         * girepository/girparser.c (start_class):
1761         * giscanner/glibtransformer.py:
1762         Allow get_type to be None, set a get_type for GInitiallyUnowned too.
1763
1764 2008-08-13  Johan Dahlin  <johan@gnome.org>
1765
1766         * giscanner/cgobject.py:
1767         Register GInitiallyUnowned
1768         * giscanner/girwriter.py:
1769         * giscanner/glibtransformer.py:
1770         Special case GObject/GInitially owned as they are a bit special to use.
1771
1772 2008-08-13  Colin Walters  <walters@verbum.org>
1773
1774         * tests/scanner/Foo-expected.gir, tests/scanner/utility-expected.gir:
1775         Object is in GObject namespace.
1776
1777 2008-08-13  Colin Walters  <walters@verbum.org>
1778
1779         * giscanner/girparser.py: Fix processing of functions
1780         from last commit.
1781
1782 2008-08-13  Colin Walters  <walters@verbum.org>
1783
1784         * giscanner/girparser.py: Parse more than just <class.
1785         * giscanner/glibtransformer.py: Put aliases in a separate
1786         data structure since their name is not canonicall.
1787         * giscanner/transformer.py: Handle resolving type names
1788         from includes.
1789
1790 2008-08-13  Johan Dahlin  <johan@gnome.org>
1791
1792         * tools/g-ir-scanner:
1793         Allow multiple libraries
1794         * giscanner/glibtransformer.py:
1795         Rename load_library to add_library, traverse over all libraries
1796         when trying to resolve a function
1797
1798 2008-08-12  Colin Walters  <walters@verbum.org>
1799
1800         * giscanner/transformer.py: Record typedefs as <alias> elements.
1801           Also attempt to look up types in external namespaces.
1802         * giscanner/girwriter.py: Write them.
1803         * giscanner/glibtransformer.py: Rework resolver using real instanceof
1804         checks.  Resolve interface methods and properties.
1805         * tests/scanner/foo-object.h: Add a method with typedef.
1806         * tests/scanner/Foo-expected.gir: Update.
1807         * girepository/girnode.c: Debug tweaks.
1808         * girepository/girparser.c: Make a first pass through the XML where we
1809         record all the aliases.  This lets us resolve them as we go through the
1810         second pass.
1811         * gir/Makefile.am: Don't install gobject-2.0.gir; we want that to come
1812         from gir-repository.
1813
1814 2008-08-12  Colin Walters  <walters@verbum.org>
1815
1816         * giscanner/glibtransformer.py: Resolve typedefs (e.g. AtkAttributeSet -> GSList).
1817         Correctly do subclasseing in 2nd pass resolution.  Handle callbacks in structure
1818         fields.
1819         * giscanner/transformer.py: Record typedefs and expose public API for resolving
1820         them.
1821         * tests/scanner/Foo-expected.gir: Fix expected callback types.
1822
1823 2008-08-12  Colin Walters  <walters@verbum.org>
1824
1825         * giscanner/glibtransformer.py: Also transform object properties.
1826
1827 2008-08-12  Colin Walters  <walters@verbum.org>
1828
1829         * giscanner/glibtransformer.py: Also transform callbacks
1830         and structure field types.
1831         * tests/scanner/Fooe-expected.gir: Update to expect correct
1832         names for callbacks and structs.
1833
1834 2008-08-12  Colin Walters  <walters@verbum.org>
1835
1836         * girepository/girparser.c: Handle 'any'.
1837         * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
1838         Add test for void *.
1839
1840 2008-08-12  Colin Walters  <walters@verbum.org>
1841
1842         * giscanner/glibtransformer.py: We need to do type
1843         resolution in a second pass after we've seen all the
1844         enums, records, etc.
1845
1846 2008-08-12  Colin Walters  <walters@verbum.org>
1847
1848         * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
1849         Add enum return value.
1850         * giscanner/glibtransformer.py: Transform function return types
1851         too.
1852
1853 2008-08-12  Colin Walters  <walters@verbum.org>
1854
1855         * tests/scanner/Makefile.am: Dep .gir files on scanner
1856         sources too.  Also remove @ so we see scanner invocations.
1857
1858 2008-08-12  Colin Walters  <walters@verbum.org>
1859
1860         * girepository/girparser.c, girepository/gtypelib.c,
1861         girepository/gtypelib.h, girepository/girnode.c:
1862         Remove usage of (GAPI-oriented) TypeTag in favor of
1863         GITypeTag from girepository.h.
1864
1865 2008-08-10  Colin Walters  <walters@verbum.org>
1866
1867         * tests/roundtrips.sh: Use the correct tests.
1868
1869 2008-08-10  Colin Walters  <walters@verbum.org>
1870
1871         * giscanner/cgobject.py: Declare/wrap a few more functions.
1872         Fix parameter types for g_object_new and g_type_fundamental.
1873
1874 2008-08-10  Colin Walters  <walters@verbum.org>
1875
1876         * giscanner/cgobject.py: Add new decorator @gwrap which forces
1877         us to declare types for both return value and parameters.  The
1878         ctypes default of 'int' is bad because it hides 32/64 bit
1879         problems.  Convert all existing functions to use it.
1880
1881 2008-08-09  Johan Dahlin  <johan@gnome.org>
1882
1883         * giscanner/__init__.py:
1884         * giscanner/ast.py:
1885         * giscanner/cgobject.py:
1886         * giscanner/gidlparser.py:
1887         * giscanner/gidlwriter.py:
1888         * giscanner/girparser.py:
1889         * giscanner/girwriter.py:
1890         * giscanner/glibast.py:
1891         * giscanner/glibtransformer.py:
1892         * giscanner/odict.py:
1893         * giscanner/sourcescanner.py:
1894         * giscanner/transformer.py:
1895         * giscanner/utils.py:
1896         * giscanner/xmlwriter.py:
1897         * tools/g-ir-scanner:
1898
1899         PEP8ify
1900
1901 2008-08-09  Johan Dahlin  <johan@gnome.org>
1902
1903         * relaxng/api.xml:
1904         * relaxng/c-types.xml:
1905         * relaxng/g-types.xml:
1906         * relaxng/relaxng.rng:
1907         * relaxng/util.xml:
1908         Remove outdated relaxng schemas.
1909
1910 2008-08-09  Johan Dahlin  <johan@gnome.org>
1911
1912         * *.[ch]:
1913         Rename metadata to typelib in variable names,
1914         comments and apis.
1915
1916 2008-08-09  Johan Dahlin  <johan@gnome.org>
1917
1918         * tools/scanner.c:
1919         * tools/scanner.h:
1920         Remove old C scanner, which got rewritten in python.
1921
1922 2008-08-09  Johan Dahlin  <johan@gnome.org>
1923
1924         * girepository/Makefile.am:
1925         * tools/Makefile.am:
1926         * tools/girmodule.c:
1927         * tools/girmodule.h:
1928         * tools/girnode.c:
1929         * tools/girnode.h:
1930         * tools/girparser.c:
1931         * tools/girparser.h:
1932         * tools/girwriter.c:
1933         * tools/girwriter.h:
1934         Move shared *.[ch] files to girepository from tools
1935
1936 2008-08-09  Johan Dahlin  <johan@gnome.org>
1937
1938         * tests/Makefile.am:
1939         * tests/array.test:
1940         * tests/boxed.test:
1941         * tests/constant.test:
1942         * tests/enum.test:
1943         * tests/errors.test:
1944         * tests/function.test:
1945         * tests/gobject.test:
1946         * tests/interface.test:
1947         * tests/object.test:
1948         * tests/struct.test:
1949         * tests/types.test:
1950         * tests/union.test:
1951         * tests/xref1.test:
1952         * tests/xref2.test:
1953         Rename *.test to *.gir
1954
1955 2008-08-09  Johan Dahlin  <johan@gnome.org>
1956
1957         * configure.ac:
1958         * tests/Makefile.am:
1959         * tests/parser/Foo-expected.gir:
1960         * tests/parser/Makefile.am:
1961         * tests/parser/foo-object.h:
1962         * tests/parser/foo.c:
1963         * tests/parser/utility-expected.gir:
1964         * tests/parser/utility.c:
1965         * tests/parser/utility.h:
1966         * tests/scanner/Makefile.am:
1967         Rename tests/parser to test/scanner
1968
1969 2008-08-08  Colin Walters  <walters@verbum.org>
1970
1971         * tests/roundtrips.sh: Use local .gir files again.
1972
1973 2008-08-08  Colin Walters  <walters@verbum.org>
1974
1975         * tests/invoke/Makefile.am: .gir file depends on libtool
1976         library.
1977
1978 2008-08-08  Colin Walters  <walters@verbum.org>
1979
1980         * tools/girnode.c: Pass through parent node so we can
1981         print the node whose child is NULL, if that occurs.
1982
1983 2008-08-08  Johan Dahlin  <johan@gnome.org>
1984
1985         * tests/Makefile.am:
1986         Disable roundtrip tests which are not yet working
1987         * tests/invoke/testfns.gir:
1988         Rewrite as gir.
1989
1990 2008-08-08  Johan Dahlin  <johan@gnome.org>
1991
1992         * giscanner/girwriter.py:
1993         type -> ntype
1994         * giscanner/glibast.py:
1995         * giscanner/glibtransformer.py:
1996         Swap order of members, to keep it consistent with
1997         base enum class
1998
1999 2008-08-08  Johan Dahlin  <johan@gnome.org>
2000
2001         * girepository/gtypelib.c (validate_header):
2002         * girepository/gtypelib.h:
2003         * giscanner/ast.py:
2004         * giscanner/girwriter.py:
2005         * giscanner/sourcescanner.c (gi_source_symbol_ref),
2006         (gi_source_symbol_unref):
2007         * tests/array.test:
2008         * tests/boxed.test:
2009         * tests/constant.test:
2010         * tests/enum.test:
2011         * tests/errors.test:
2012         * tests/function.test:
2013         * tests/gobject.test:
2014         * tests/interface.test:
2015         * tests/invoke/Makefile.am:
2016         * tests/invoke/testfns.xml:
2017         * tests/object.test:
2018         * tests/parser/Makefile.am:
2019         * tests/roundtrips.sh:
2020         * tests/struct.test:
2021         * tests/types.test:
2022         * tests/union.test:
2023         * tests/xref1.test:
2024         * tests/xref2.test:
2025         * tools/Makefile.am:
2026         * tools/compiler.c (main):
2027         * tools/generate.c (write_callable_info), (write_function_info),
2028         (write_repository):
2029         * tools/gidlmodule.c:
2030         * tools/gidlmodule.h:
2031         * tools/gidlnode.c:
2032         * tools/gidlnode.h:
2033         * tools/gidlparser.c:
2034         * tools/gidlparser.h:
2035         * tools/gidlwriter.c:
2036         * tools/gidlwriter.h:
2037         * tools/scanner.c (create_node_from_gtype),
2038         (create_node_from_ctype), (g_igenerator_process_properties),
2039         (g_igenerator_process_signals), (g_igenerator_create_object),
2040         (g_igenerator_create_interface), (g_igenerator_create_boxed),
2041         (g_igenerator_create_enum), (g_igenerator_create_flags),
2042         (g_igenerator_process_function_symbol),
2043         (g_igenerator_process_unregistered_struct_typedef),
2044         (g_igenerator_process_struct_typedef),
2045         (g_igenerator_process_union_typedef),
2046         (g_igenerator_process_enum_typedef),
2047         (g_igenerator_process_function_typedef),
2048         (g_igenerator_process_constant), (g_igenerator_process_symbols),
2049         (g_igenerator_add_module), (g_igenerator_add_include_idl):
2050         Merge in the gir-compiler branch.
2051         Thanks to Philip and Colin for their help.
2052
2053 2008-07-26  Colin Walters  <walters@verbum.org>
2054
2055         * tools/Makefile.am (bin_PROGRAMS): Install g-idl-compiler
2056         and g-idl-generate to go along with how we're changing this
2057         module to be installed.
2058         * gobject-introspection-1.0.pc.in: Set up Cflags and Libs.
2059
2060 2008-07-24  Colin Walters  <walters@verbum.org>
2061
2062         * girepository/girepository.c (g_irepository_register): Add
2063         environment variable G_IREPOSITORY_VERBOSE so we can print
2064         out what we're doing.
2065         * girepository/girepository.c (g_irepository_register_file): 
2066         Add GError error message to g_debug call.
2067
2068 2008-07-08  Jürg Billeter  <j@bitron.ch>
2069
2070         * giscanner/glibast.py:
2071
2072         Fix typo
2073
2074 2008-06-21  Johan Dahlin  <jdahlin@async.com.br>
2075
2076         * giscanner/girparser.py (GIRParser._parse_api): Ignore a few
2077         more tags
2078
2079 2008-06-20  Johan Dahlin  <jdahlin@async.com.br>
2080
2081         * giscanner/ast.py:
2082         * giscanner/girwriter.py:
2083         * giscanner/transformer.py:
2084         * tests/parser/Foo-expected.gir:
2085         * tests/parser/foo-object.h:
2086         * tests/parser/foo.c (foo_object_allow_none):
2087         Add support for gtk-doc annotations for allow-none.
2088         Add test case.
2089
2090 2008-06-19  Johan Dahlin  <jdahlin@async.com.br>
2091
2092         * giscanner/ast.py:
2093         * giscanner/girwriter.py:
2094         * giscanner/glibast.py:
2095         * giscanner/glibtransformer.py:
2096         * giscanner/transformer.py:
2097         * tests/parser/Foo-expected.gir:
2098         Start using abstract type instead of the raw C types.
2099         Register a bunch of glib types we care about.
2100
2101 2008-06-19  Rob Taylor  <rob.taylor@codethink.co.uk>
2102
2103         * AUTHORS:
2104         Update authors
2105
2106 2008-06-08  Philip Van Hoof  <pvanhoof@gnome.org>
2107
2108         * girepository/girepository.c:
2109         * girepository/gtypelib.c:
2110         * girepository/ginfo.c:
2111         * girepository/ginvoke.c:
2112         * girepository/girepository.h:
2113         * girepository/gtypelib.h:
2114         * girepository/gmetadata.c:
2115         * girepository/Makefile.am:
2116         * girepository/gmetadata.h:
2117         * tools/compiler.c:
2118         * tools/gidlmodule.c:
2119         * tools/gidlnode.c
2120         * tools/generate.c:
2121         * tools/gidlmodule.h:
2122         * tools/gidlparser.c:
2123
2124         Renamed GMetadata to GTypelib
2125
2126 2008-06-07  Johan Dahlin  <jdahlin@async.com.br>
2127
2128         * giscanner/xmlwriter.py:
2129         Improve line wrapping when > 79 charaters
2130
2131 2008-06-05  Jürg Billeter  <j@bitron.ch>
2132
2133         * giscanner/ast.py:
2134         * giscanner/girwriter.py:
2135         * giscanner/transformer.py:
2136         Use <type> element for field types
2137         * tests/parser/Foo-expected.gir:
2138         Update testcase
2139
2140 2008-06-04  Johan Dahlin  <jdahlin@async.com.br>
2141
2142         * giscanner/glibtransformer.py:
2143         Fix a bug which prevented GdkEvent from being generated
2144
2145 2008-06-03  Johan Dahlin  <jdahlin@async.com.br>
2146
2147         * giscanner/Makefile.am:
2148         * giscanner/ast.py:
2149         * giscanner/girwriter.py:
2150         * giscanner/glibast.py:
2151         * giscanner/glibtransformer.py:
2152         * giscanner/transformer.py:
2153         * giscanner/utils.py:
2154         * tests/parser/Foo-expected.gir:
2155         Improve enum member parsing and introspection
2156
2157 2008-05-31  Johan Dahlin  <jdahlin@async.com.br>
2158
2159         * giscanner/scannerparser.y:
2160         * giscanner/sourcescanner.h:
2161         * giscanner/sourcescanner.py:
2162         Add a new source type enum for member.
2163         Use __repr__ for improved debugging
2164         * giscanner/girparser.py:
2165         Ignore some more
2166         * giscanner/transformer.py:
2167         Improve parsing of struct members.
2168         * tests/parser/foo-object.h:
2169         Add a new testcase
2170
2171 2008-05-31  Johan Dahlin  <jdahlin@async.com.br>
2172
2173         * giscanner/xmlwriter.py:
2174         Improve error reporting when trying to quote None.
2175         * giscanner/girparser.py:
2176         Do not print warnings when including more complete .gir files
2177         * giscanner/girwriter.py:
2178         Do not require a name for parameters, add a todo for singletons
2179         * giscanner/glibtransformer.py:
2180         Refactor the way structs are done, add a couple of hacks to allow
2181         us to get further.
2182         * giscanner/transformer.py:
2183         Add enough hacks so cairo, atk and pango.gir can be parsed properly
2184         * gobject-introspection-1.0.pc.in:
2185         Export girdir, so we can access gobject-2.0.gir from outside
2186
2187 2008-05-31  Johan Dahlin  <jdahlin@async.com.br>
2188
2189         * tools/g-ir-scanner:
2190         * tests/parser/Makefile.am:
2191         Update sys.path before running the parser so we don't have
2192         to setup PYTHONPATH ourselves.
2193
2194         * Makefile.am:
2195         * configure.ac:
2196         * girepository/Makefile.am:
2197         * giscanner/transformer.py:
2198         * gobject-introspection-1.0.pc.in:
2199         * gobject-introspection.pc.in:
2200         * tools/Makefile.am:
2201
2202         Rename pkg-config name to gobject-introspection-1.0,
2203         Do not installed anything which is not using the gir format.
2204         Disable compililation the old C scanner, but still keep the source
2205         until all the remaning functionallity has been ported.
2206
2207 2008-05-31  Johan Dahlin  <jdahlin@async.com.br>
2208
2209         * giscanner/giscannermodule.c (symbol_get_ident): Prevent
2210         a crash when symbol->indent is NULL.
2211
2212         * giscanner/sourcescanner.py (ctype_name): Add ctype_name,
2213         a function to convert a CTYPE symbol to a string
2214
2215 2008-05-24  Johan Dahlin  <jdahlin@async.com.br>
2216
2217         * giscanner/ast.py:
2218         * giscanner/girwriter.py:
2219         * giscanner/giscannermodule.c
2220         (pygi_source_scanner_append_filename),
2221         (pygi_source_scanner_parse_file):
2222         * giscanner/glibtransformer.py:
2223         * giscanner/sourcescanner.py:
2224         Revert back to using temporary files to send in headers.
2225         Allow Functions to be passed in as callbacks, add a couple
2226         of try/excepts missing features.
2227         We can now scan pango
2228
2229 2008-05-08  Johan Dahlin  <johan@gnome.org>
2230
2231         * giscanner/glibtransformer.py:
2232         * giscanner/transformer.py:
2233         Move namespace stripping glibtransformer->transformer
2234
2235 2008-05-08  Johan Dahlin  <johan@gnome.org>
2236
2237         * giscanner/ast.py:
2238         * giscanner/girwriter.py:
2239         * giscanner/glibtransformer.py:
2240         * giscanner/transformer.py:
2241         * tools/g-ir-scanner:
2242         Introduce a namespace ast node
2243
2244 2008-05-05  Johan Dahlin  <johan@gnome.org>
2245
2246         * giscanner/__init__.py:
2247         * giscanner/sourcescanner.py:
2248         * giscanner/transformer.py:
2249         Move sourcescanner symbols to the sourcescanner module, instead
2250         of in the global __init__ namespace.
2251
2252 2008-05-03  Johan Dahlin  <johan@gnome.org>
2253
2254         * giscanner/glibtransformer.py:
2255         * tools/g-ir-scanner:
2256         Handle missing parameters better, allow - and + in .la dlname
2257         filenames.
2258
2259 2008-05-03  Johan Dahlin  <johan@gnome.org>
2260
2261         * giscanner/__init__.py:
2262         * giscanner/ast.py:
2263         * giscanner/girwriter.py:
2264         * giscanner/glibtransformer.py:
2265         * giscanner/transformer.py:
2266         Parse struct fields properly, improve debugging.
2267
2268 2008-04-29  Johan Dahlin  <johan@gnome.org>
2269
2270         * giscanner/ast.py:
2271         * giscanner/girwriter.py:
2272         * giscanner/transformer.py:
2273         * tests/parser/Foo-expected.gir:
2274         * TODO:
2275         Use transfer-ownership everywhere, to mark ownership/calle/caller etc.
2276
2277 2008-04-29  Johan Dahlin  <jdahlin@async.com.br>
2278
2279         * Makefile.am:
2280         * docs/g-ir-scanner.1:
2281         * metadata-annotations-proposal.txt:
2282         * metadata-format.txt:
2283         Add a basic, unfinshed man page for g-ir-scanner, move documents into .txt
2284
2285 2008-04-29  Johan Dahlin  <jdahlin@async.com.br>
2286
2287         * giscanner/girwriter.py:
2288         * giscanner/glibtransformer.py:
2289         * giscanner/transformer.py:
2290         * giscanner/xmlwriter.py:
2291         * tests/parser/Foo-expected.gir:
2292         * tests/parser/foo-object.h:
2293         Write record/structs to gir file too. Add a couple of tests,
2294         fix an off by one error in xmlwriter.py.
2295
2296 2008-04-28  Johan Dahlin  <johan@gnome.org>
2297
2298         * giscanner/xmlwriter.py: Calculate the line length properly,
2299         include the provided extra indentation in the calculation, really.
2300
2301 2008-04-28  Johan Dahlin  <jdahlin@async.com.br>
2302
2303         * giscanner/ast.py:
2304         * giscanner/glibast.py:
2305         * giscanner/glibtransformer.py:
2306         * giscanner/transformer.py:
2307         * tools/g-ir-scanner:
2308         Add a --strip-prefix and sort out confusion between names and symbols
2309         for functions and struct + derivaties.
2310         Refactor bootstrap of g-ir-scanner, so we can set options on
2311         Transformer() before parsing everything.
2312
2313 2008-04-28  Johan Dahlin  <johan@gnome.org>
2314
2315         * giscanner/transformer.py (Transformer._traverse_one): Avoid recursion
2316         when scanning girepository.h
2317
2318         * giscanner/sourcescanner.py (SourceScanner._preprocess): Define
2319         a __GI_SCANNER__ when we run.
2320
2321 2008-04-28  Johan Dahlin  <jdahlin@async.com.br>
2322
2323         * giscanner/ast.py:
2324         * giscanner/girwriter.py:
2325         * giscanner/glibast.py:
2326         * giscanner/glibtransformer.py:
2327         * tests/parser/Foo-expected.gir:
2328         * tests/parser/utility-expected.gir:
2329         Rename most c:identifier to c:type. Add new ones to
2330         class/interface/enum/boxed.
2331
2332 2008-04-28  Johan Dahlin  <jdahlin@async.com.br>
2333
2334         * giscanner/ast.py:
2335         * giscanner/girwriter.py:
2336         * giscanner/glibtransformer.py:
2337         * tests/parser/Foo-expected.gidl:
2338         * tests/parser/Makefile.am:
2339         Move c:identifier from return-value to subchild type,
2340         as per Jürgs suggestion
2341
2342 2008-04-28  Johan Dahlin  <johan@gnome.org>
2343
2344         * giscanner/girwriter.py:
2345         * tests/parser/Foo-expected.gir:
2346         Write property.type as a child node.
2347
2348 2008-04-27  Johan Dahlin  <johan@gnome.org>
2349
2350         * Makefile.am:
2351         * configure.ac:
2352         * gidl/Makefile.am:
2353         * gidl/gobject-2.0.gidl:
2354         * gir/Makefile.am:
2355         * gir/gobject-2.0.gir:
2356         * tests/parser/Makefile.am:
2357         Replace the GObject gidl with a GObject gir.
2358
2359 2008-04-27  Johan Dahlin  <johan@gnome.org>
2360
2361         * tools/Makefile.am (bin_SCRIPTS): g-ir-scanner is a script,
2362         not a program.
2363
2364         * giscanner/xmlwriter.py:
2365         * tests/parser/Foo-expected.gir:
2366         Include indentation in line length calculation
2367
2368 2008-04-27  Johan Dahlin  <johan@gnome.org>
2369
2370         * giscanner/girparser.py:
2371         Prettify NS parsing using elementtree.
2372
2373 2008-04-27  Johan Dahlin  <johan@gnome.org>
2374
2375         * configure.ac:
2376         * giscanner/Makefile.am:
2377         * giscanner/girparser.py:
2378         * giscanner/glibtransformer.py:
2379         * tests/parser/Foo-expected.gidl:
2380         * tests/parser/Foo-expected.gir:
2381         * tests/parser/Makefile.am:
2382         * tests/parser/utility-expected.gidl:
2383         * tests/parser/utility-expected.gir:
2384         * tools/g-ir-scanner:
2385         Switch over to GIR as the default format. Add a simple GIDL
2386         parser.
2387         Update tests and fix simplify makefiles by depending
2388         on GNU make extensions.
2389
2390 2008-04-27  Johan Dahlin  <johan@gnome.org>
2391
2392         * giscanner/xmlwriter.py:
2393         Wrap attributes for lines which are wider than 79 characters
2394
2395         * giscanner/scannerlexer.l:
2396         Allow parenthesis in annotations
2397
2398         * giscanner/ast.py:
2399         * giscanner/gidlwriter.py:
2400         * giscanner/girwriter.py:
2401         * giscanner/glibtransformer.py:
2402         * giscanner/transformer.py:
2403         Add initial sequence support, including annotation.
2404         Refactor type handling a bit.
2405
2406 2008-04-27  Johan Dahlin  <johan@gnome.org>
2407
2408         * tests/parser/Foo-expected.gidl:
2409         * tests/parser/foo-object.h:
2410         * tests/parser/foo.c (foo_object_class_init),
2411         (foo_object_get_strings), (foo_object_get_objects):
2412         Add two new functions to check sequence return values.
2413         Also fixes a compilation warning.
2414
2415 2008-04-27  Johan Dahlin  <johan@gnome.org>
2416
2417         * giscanner/giscannermodule.c (]): Cast the getter, avoids
2418         a compilation warning.
2419
2420         * tools/Makefile.am (g_ir_scanner_SOURCES):
2421         g-ir-scanner has no sources.
2422
2423 2008-04-25  Johan Dahlin  <johan@gnome.org>
2424
2425         * giscanner/Makefile.am:
2426         * giscanner/ast.py:
2427         * giscanner/gidlparser.py:
2428         * giscanner/gidlwriter.py:
2429         * giscanner/girwriter.py:
2430         * giscanner/glibast.py:
2431         * giscanner/glibtransformer.py:
2432         * giscanner/transformer.py:
2433         Split out nodes to ast.py and glibast.py
2434
2435 2008-04-25  Johan Dahlin  <jdahlin@async.com.br>
2436
2437         * giscanner/Makefile.am:
2438         * giscanner/gidlparser.py:
2439         * giscanner/gidlwriter.py:
2440         * giscanner/girwriter.py:
2441         * giscanner/glibtransformer.py:
2442         * giscanner/gobjecttreebuilder.py:
2443         * giscanner/transformer.py:
2444         * giscanner/treebuilder.py:
2445         * tools/g-ir-scanner:
2446         Rename treebuilder to transformer and
2447         gobjectreebuilder to glibtransformer.
2448
2449 2008-04-25  Johan Dahlin  <jdahlin@async.com.br>
2450
2451         * giscanner/Makefile.am:
2452         * giscanner/__init__.py:
2453         * giscanner/cgobject.py:
2454         * giscanner/gidlparser.py:
2455         * giscanner/gidlwriter.py:
2456         * giscanner/girwriter.py:
2457         * giscanner/gobjecttreebuilder.py:
2458         * giscanner/odict.py:
2459         * giscanner/sourcescanner.py:
2460         * giscanner/treebuilder.py:
2461         * giscanner/xmlwriter.py:
2462         * tools/Makefile.am:
2463         * tools/g-ir-scanner:
2464         Add LGPLv2 license header and install all python files
2465
2466 2008-04-25  Johan Dahlin  <jdahlin@async.com.br>
2467
2468         * TODO:
2469         * giscanner/gidlwriter.py:
2470         * giscanner/giscannermodule.c (pygi_source_directive_new),
2471         (directive_get_options), (pygi_source_symbol_new),
2472         (symbol_get_base_type), (pygi_source_type_new),
2473         (type_get_base_type), (type_get_child_list),
2474         (pygi_source_scanner_get_symbols),
2475         (pygi_source_scanner_get_directives):
2476         * giscanner/gobjecttreebuilder.py:
2477         * giscanner/sourcescanner.py:
2478         * giscanner/treebuilder.py:
2479         * tests/parser/foo-object.h:
2480         Add support for virtual methods.
2481         Pair struct FooClass with struct Foo.
2482         Clean up the SourceScanner bindings a bit.
2483         Add a testcase for virtual methods.
2484
2485 2008-04-25  Johan Dahlin  <jdahlin@async.com.br>
2486
2487         * giscanner/cgobject.py:
2488         * giscanner/gidlwriter.py:
2489         * giscanner/gobjecttreebuilder.py:
2490         Add support for signals
2491
2492         * tests/parser/foo.c (foo_object_class_init):
2493         * Foo-expected.gidl:
2494         Add a signal and update the expected output.
2495
2496 2008-04-24  Johan Dahlin  <jdahlin@async.com.br>
2497
2498         * giscanner/gidlwriter.py:
2499         * giscanner/girwriter.py:
2500         * giscanner/giscannermodule.c (directive_get_name),
2501         (directive_get_value), (directive_get_options),
2502         (symbol_get_directives), (symbol_set_directives),
2503         (pygi_source_scanner_parse_file),
2504         (pygi_source_scanner_lex_filename),
2505         (pygi_source_scanner_get_directives), (init_giscanner):
2506         * giscanner/sourcescanner.c (gi_source_scanner_get_directives):
2507         * giscanner/sourcescanner.h:
2508         * giscanner/sourcescanner.py:
2509         * giscanner/treebuilder.py:
2510         * tools/g-ir-scanner:
2511         Add support for source/header annotations.
2512
2513 2008-04-22  Johan Dahlin  <jdahlin@async.com.br>
2514
2515         * giscanner/gidlwriter.py:
2516         * giscanner/girwriter.py:
2517         * giscanner/gobjecttreebuilder.py:
2518         * giscanner/treebuilder.py:
2519         Add support for Callbacks
2520
2521 2008-04-22  Havoc Pennington  <hp@pobox.com>
2522
2523         * girepository/ginvoke.c (g_function_info_invoke): If a symbol is
2524         not in metadata->module, look for it in the global module, in case
2525         some other object or the app itself provides the symbol.
2526
2527 2008-04-22  Havoc Pennington  <hp@pobox.com>
2528
2529         * girepository/gmetadata.c (_g_metadata_init): hack to avoid
2530         dlopening a library that is already in the main app, by checking
2531         whether one of the lib's symbols is already loaded.
2532
2533 2008-04-22  Johan Dahlin  <jdahlin@async.com.br>
2534
2535         * tests/parser/Foo-expected.gidl:
2536         * tests/parser/foo-object.h:
2537         Add a callback test
2538
2539 2008-04-22  Havoc Pennington  <hp@pobox.com>
2540
2541         * girepository/ginfo.c (g_interface_info_find_method):
2542         Use interface_blob_size not object_blob_size to compute offset.
2543
2544 2008-04-22  Havoc Pennington  <hp@pobox.com>
2545
2546         * girepository/gmetadata.c (_g_metadata_init): remove
2547         G_MODULE_BIND_LOCAL flag when loading libraries, since some libs
2548         (Glade and Clutter for example) rely on being loaded globally.
2549
2550 2008-04-22  Havoc Pennington  <hp@pobox.com>
2551
2552         * girepository/ginfo.c (g_registered_type_info_get_g_type): new
2553         function to get the GType given a RegisteredTypeInfo
2554
2555 2008-04-22  Johan Dahlin  <johan@gnome.org>
2556
2557         * COPYING: Add a LGPL license, to prevent automake to
2558         put in a copy of GPL here. Pointed out by Havoc.
2559
2560         * girepository/ginfo.c (g_info_from_entry), (g_type_info_new),
2561         (g_type_info_is_pointer), (g_type_info_get_tag),
2562         (g_type_info_get_param_type), (g_type_info_get_interface),
2563         (g_type_info_get_array_length), (g_type_info_is_zero_terminated),
2564         (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
2565         (g_error_domain_info_get_codes), (g_enum_info_get_value),
2566         (g_object_info_get_interface), (g_object_info_get_field),
2567         (g_interface_info_get_prerequisite),
2568         (g_signal_info_get_class_closure), (g_constant_info_get_value):
2569         * girepository/ginvoke.c (get_ffi_type):
2570         * girepository/girepository.h:
2571         * girepository/gmetadata.c (g_metadata_get_dir_entry),
2572         (g_metadata_check_sanity), (validate_header),
2573         (validate_array_type_blob), (validate_iface_type_blob),
2574         (validate_param_type_blob), (validate_error_type_blob),
2575         (validate_type_blob), (validate_constant_blob),
2576         (validate_struct_blob), (validate_enum_blob):
2577         * girepository/gmetadata.h:
2578         * tests/Makefile.am:
2579         * tests/invoke/Makefile.am:
2580         * tests/invoke/invoke.c (main):
2581         * tests/roundtrips.sh:
2582         * tools/Makefile.am:
2583         * tools/compiler.c (format_output), (write_out_metadata), (main):
2584         * tools/generate.c (write_type_name), (write_type_info),
2585         (write_constant_value), (write_enum_info), (load_metadata), (main):
2586         * tools/gidlcompilercontext.c:
2587         * tools/gidlcompilercontext.h:
2588         * tools/gidlcompilerentrynode.c:
2589         * tools/gidlcompilerentrynode.h:
2590         * tools/gidlcompilertypenode.c:
2591         * tools/gidlcompilertypenode.h:
2592         * tools/gidlmodule.c (g_idl_module_build_metadata):
2593         * tools/gidlmodule.h:
2594         * tools/gidlnode.c (init_stats), (dump_stats),
2595         (g_idl_node_get_size), (g_idl_node_get_full_size),
2596         (g_idl_node_cmp), (g_idl_node_can_have_member),
2597         (g_idl_node_add_member), (g_idl_node_param_direction_string),
2598         (parse_int_value), (parse_uint_value), (parse_float_value),
2599         (parse_boolean_value), (find_entry_node), (find_entry),
2600         (serialize_type), (g_idl_node_build_metadata), (write_string):
2601         * tools/gidlnode.h:
2602         * tools/gidlparser.c (parse_type_internal):
2603         * tools/quote-file.sh:
2604         Revert revisions 157,149-148,136-129 and 120.
2605         Move back to using g-idl-generate to generate the metadata and
2606         avoids dependency on a c compiler.
2607
2608 2008-04-22  Johan Dahlin  <jdahlin@async.com.br>
2609
2610         * giscanner/girwriter.py:
2611         * tools/g-ir-scanner:
2612         Add an initial GIR writer and a --format option to g-ir-scanner
2613
2614 2008-04-21  Johan Dahlin  <johan@gnome.org>
2615
2616         * giscanner/cgobject.py: Use ctypes.util.find_library to locate
2617         gobject-2.0 and raise ImportError if not found.
2618
2619         * giscanner/gidlparser.py:
2620         * giscanner/gidlwriter.py:
2621         * giscanner/gobjecttreebuilder.py:
2622         * tools/g-ir-scanner:
2623         Add a --include argument to include types from other idls.
2624         Add a minimalistic GIDL parser (just objects for now)
2625         Implement resolving of external type references and use it to
2626         resolve parent types, argument types and return types.
2627
2628 2008-04-21  Johan Dahlin  <johan@gnome.org>
2629
2630         * giscanner/gidlwriter.py:
2631         * giscanner/gobjecttreebuilder.py:
2632         * giscanner/treebuilder.py:
2633         Add support for properties.
2634         Refactor Class/Interface support a bit, to share more code and
2635         always initialize their method attribute to an empty list.
2636
2637 2008-04-21  Johan Dahlin  <johan@gnome.org>
2638
2639         * giscanner/cgobject.py:
2640         Add a workaround for a glib bug interface introspection bug
2641         (object_interface_list_properties, object_class_list_properties):
2642         Cast the return value to GParamSpec.
2643
2644         * tests/parser/Foo-expected.gidl: Update
2645         * tests/parser/foo.c: Add a string property
2646
2647         * giscanner/gobjecttreebuilder.py:
2648         After stripping namespaces, remove the original
2649         item to avoid duplication (GtkButton struct and Button object)
2650
2651 2008-04-21  Johan Dahlin  <johan@gnome.org>
2652
2653         * giscanner/gobjecttreebuilder.py:
2654         * giscanner/treebuilder.py:
2655         Strip namespaces before objects, so we'll export
2656         GtkButton as Button in the gtk namespace
2657
2658 2008-04-21  Johan Dahlin  <johan@gnome.org>
2659
2660         * giscanner/gidlwriter.py:
2661         * giscanner/gobjecttreebuilder.py:
2662         * giscanner/treebuilder.py:
2663         Add constructors for object/boxed types.
2664
2665 2008-04-21  Johan Dahlin  <johan@gnome.org>
2666
2667         * giscanner/gidlwriter.py:
2668         * giscanner/gobjecttreebuilder.py:
2669         Add support for boxed types
2670
2671 2008-04-21  Johan Dahlin  <johan@gnome.org>
2672
2673         * giscanner/giscannermodule.c: Mark structures as const,
2674         wrap SourceType.const_string.
2675
2676         * tests/parser/foo-object.h: Add a couple of constants.
2677
2678         * giscanner/gidlwriter.py:
2679         * giscanner/gobjecttreebuilder.py:
2680         * giscanner/treebuilder.py:
2681         Add basic support for interfaces
2682
2683         * tools/g-ir-scanner:
2684         Add -o/--output for writing to a file
2685
2686 2008-04-21  Havoc Pennington  <hp@redhat.com>
2687
2688         * TODO: add some C API wishlist items I could think of quickly
2689
2690 2008-04-21  Johan Dahlin  <jdahlin@async.com.br>
2691
2692         * giscanner/gidlwriter.py:
2693         * giscanner/xmlwriter.py:
2694         Add a simple api for writing tags which can be used 
2695         with the new 'with statement' in python 2.5
2696
2697 2008-04-21  Johan Dahlin  <johan@gnome.org>
2698
2699         * giscanner/gobjecttreebuilder.py:
2700         Strip namespace and object prefix from method names.
2701
2702 2008-04-21  Johan Dahlin  <johan@gnome.org>
2703
2704         * tools/g-ir-scanner (main): Add --pkg option to pass in
2705         pkg-config modules to get cflags from.
2706
2707         * giscanner/gidlwriter.py (GIDLWriter._write_method): 
2708         Avoid duplication, reuse function writer for methods.
2709
2710 2008-04-21  Johan Dahlin  <jdahlin@async.com.br>
2711
2712         * giscanner/gidlwriter.py:
2713         * giscanner/gobjecttreebuilder.py:
2714         * giscanner/treebuilder.py:
2715         * tools/g-ir-scanner:
2716         Resolve libtool .la files.
2717         Strip name spaces for methods.
2718         Add function symbols
2719
2720 2008-04-20  Johan Dahlin  <jdahlin@async.com.br>
2721
2722         * giscanner/cgobject.py:
2723         * giscanner/gidlwriter.py:
2724         * giscanner/gobjecttreebuilder.py:
2725         * giscanner/treebuilder.py:
2726         Add support for classes and methods
2727
2728 2008-04-20  Johan Dahlin  <johan@gnome.org>
2729
2730         * giscanner/gidlwriter.py:
2731         * giscanner/gobjecttreebuilder.py:
2732         * giscanner/odict.py:
2733         Avoid conflicts, keep the output ordered similar to
2734         the order of the input.
2735         Add a simple ordered dictionary implemenation
2736
2737 2008-04-19  Johan Dahlin  <johan@gnome.org>
2738
2739         * giscanner/cgobject.py:
2740         * giscanner/gidlwriter.py:
2741         * giscanner/gobjecttreebuilder.py:
2742         * tools/g-ir-scanner:
2743         Start introspecting get-type functions.
2744         Implement support for GLib/GFlags GTypes.
2745         Add a ctype based GObject binding.
2746
2747 2008-04-18  Johan Dahlin  <jdahlin@async.com.br>
2748
2749         * giscanner/gidlwriter.py:
2750         * giscanner/xmlwriter.py:
2751         * tools/g-ir-scanner:
2752         Add a simplistic gidl writer, which can't do too much.
2753
2754 2008-04-18  Johan Dahlin  <johan@gnome.org>
2755
2756         * giscanner/sourcescanner.py:
2757         * giscanner/treebuilder.py:
2758         * tools/g-ir-scanner:
2759         split tree building and source scanning interface to separate files.
2760
2761 2008-04-18  Johan Dahlin  <johan@gnome.org>
2762
2763         * tools/g-ir-scanner (Parameter.__init__): Start constructing
2764         a real node tree.
2765         - Add support for struct/parameter/return, start parsing of ctypes
2766
2767         * giscanner/giscannermodule.c: wrap GISourceType.child_list and
2768         fix the style
2769
2770 2008-03-31  Johan Dahlin  <johan@gnome.org>
2771
2772         * tools/g-ir-scanner:
2773         Start to build abstract syntax node of scanned sources.
2774         Add support for cpp options.
2775
2776 2008-03-27  Johan Dahlin  <johan@gnome.org>
2777
2778         * giscanner/giscannermodule.c:
2779         * giscanner/scannerlexer.l:
2780         * giscanner/sourcescanner.c:
2781         * tools/g-ir-scanner:
2782
2783         Add simple pre-processor using subprocess and a PIPE.
2784         Change the parse_file apis to accept a file descriptor.
2785
2786 2008-03-25  Johan Dahlin  <johan@gnome.org>
2787
2788         * giscanner/__init__.py:
2789         * tools/g-ir-scanner:
2790         Fix a typo and add an example python test program.
2791
2792 2008-03-25  Johan Dahlin  <johan@gnome.org>
2793         
2794         * giscanner/__init__.py:
2795         * giscanner/giscannermodule.c:
2796         * giscanner/sourcescanner.c:
2797         * giscanner/sourcescanner.h:
2798         Add constants and wrap a few more SymbolType fields
2799
2800 2008-03-25  Johan Dahlin  <johan@gnome.org>
2801         
2802         * configure.ac:
2803         * giscanner:
2804         * giscanner/__init__.py:
2805         * giscanner/giscannermodule.c:
2806         * giscanner/Makefile.am:
2807
2808         Add initial python bindings for the scanner and 
2809         depend on python 2.5.
2810
2811 2008-03-25  Johan Dahlin  <johan@gnome.org>
2812
2813         * Makefile.am:
2814         * configure.ac:
2815         * giscanner/Makefile.am:
2816         * giscanner/sourcescanner.c:
2817         * giscanner/sourcescanner.h:
2818         * tools/Makefile.am:
2819         * tools/grealpath.h:
2820         * tools/sourcescanner.c:
2821         * tools/sourcescanner.h:
2822
2823         Move the scanner to a separate library.
2824         
2825 2008-03-23  Johan Dahlin  <johan@gnome.org>
2826
2827         * tools/Makefile.am:
2828         * tools/scanner.c:
2829         * tools/scanner.h:
2830         * tools/scannerlexer.l:
2831         * tools/scannerparser.y:
2832         * tools/sourcescanner.c:
2833         * tools/sourcescanner.h:
2834         Split out the source scanner from the generator.
2835         Rename the symbols used in the scanner to use the gi_ prefix.
2836         This should make it possible to use the raw C parser from
2837         other programs.
2838
2839 2008-03-23  Johan Dahlin  <johan@gnome.org>
2840
2841         * tests/parser/Makefile.am (utility.gidl): 
2842         * tests/parser/utility-expected.gidl: 
2843         Pass in the gobject.gidl since we're defining a GObject.
2844
2845 2008-03-12  Johan Dahlin  <johan@gnome.org>
2846
2847         * relaxng/relaxng.rng:
2848         Add a releaxng in relaxng we can use to validate the relaxngs
2849         schemas
2850
2851 2008-03-12  Jürg Billeter  <j@bitron.ch>
2852
2853         * tools/scanner.c: (g_igenerator_new):
2854         * tools/scannerparser.y:
2855         Fix compiler warnings.
2856
2857 2008-03-12  Jürg Billeter  <j@bitron.ch>
2858
2859         * tools/scanner.c:
2860         * tools/scanner.h:
2861         * tools/scannerparser.y:
2862         Start fixing memory management in g-idl-scanner.
2863
2864 2008-03-12  Rob Taylor  <rob.taylor@codethink.co.uk>
2865
2866         * tools/gidlcompilercontext.c: (write_compiled):
2867         Fix critical warning when no shlib passed to g-idl-compiler.
2868
2869 2008-03-12  Johan Dahlin  <johan@gnome.org>
2870
2871         * tests/parser/utility-expected.gidl:
2872         * tests/parser/utility.h:
2873         Add a get_type-function, so the scanner actually
2874         parses it as an object.
2875         
2876 2008-03-12  Johan Dahlin  <johan@gnome.org>
2877
2878         * tools/gidlwriter.c (function_generate): Add missing trailing quote.
2879         Bad Philip!
2880
2881         * tests/parser/Foo-expected.gidl:
2882         * tests/parser/Makefile.am:
2883         * tests/parser/foo-object.h:
2884         * tests/parser/foo.c:
2885         * tests/parser/utility-expected.gidl:
2886         * tests/parser/utility.c:
2887         * tests/parser/utility.h:
2888
2889         Add a new gidl test. 'utility.gidl', which is used to be able
2890         to test external type references. Add a reference to UtilityObject*
2891         in the idl file.
2892
2893 2008-03-11  Johan Dahlin  <johan@gnome.org>
2894
2895         * tools/compiler.c:
2896         * tools/generate.c:
2897         Remove most global variables
2898
2899 2008-03-11  Philip Van Hoof  <me@pvanhoof.be>
2900  
2901         * tools/scannerlexer.l:
2902         * tools/scanner.c:
2903         * tests/parser/Foo-expected.gidl:
2904         * tests/parser/foo.c:
2905         * tests/parser/Makefile.am:
2906         * tests/parser/foo-object.h:
2907  
2908         Added a few extra tests. Which resulted in finding a few
2909         bugs. Which resulted in me fixing those bugs
2910
2911 2008-03-11  Rob Taylor  <rob.taylor@codethink.co.uk>
2912
2913         * tools/gidlcompilercontext.c: (g_idl_compiler_write_dir_entry),
2914         (g_idl_compiler_write_xref_entry), (g_idl_compiler_add_xref):
2915         Add some comments for strings into generated output for
2916         easier debugging.
2917
2918 2008-03-11  Rob Taylor  <rob.taylor@codethink.co.uk>
2919
2920         * tools/gidlcompilercontext.c: (write_compiled):
2921         Write out the shlibs variable before writing out the strings
2922         length. Fixes compiler warning when using '-l' flag with
2923         g-idl-compiler
2924
2925 2008-03-11  Johan Dahlin  <johan@gnome.org>
2926
2927         * tests/parser/Foo-expected.gidl:
2928         * tests/parser/foo-object.h:
2929         * tools/scanner.c:
2930         * tools/scanner.h:
2931         * tools/scannerlexer.l:
2932         Add support for parsing return arguments. Add support for
2933         caller-owns return types.
2934         Patch by Philip Van Hoof.
2935         
2936         * tools/scannerparser.y:
2937         Remove parsing of the @deprecated syntax used in headers.
2938         We will support gtk-doc deprecation in the future instead.
2939
2940 2008-03-11  Johan Dahlin  <johan@gnome.org>
2941
2942         * tools/compiler.c (main): Coding style fixes
2943
2944 2008-03-10  Johan Dahlin  <johan@gnome.org>
2945
2946         * configure.ac:
2947         Add GCOV_LIBS to GILIBS
2948
2949 2008-03-10  Johan Dahlin  <johan@gnome.org>
2950
2951         * tests/parser/Foo-expected.gidl:
2952         * tests/parser/foo.c:
2953         Rename null-ok to direction=out
2954
2955 2008-03-10  Philip Van Hoof  <me@pvanhoof.be>
2956
2957         reviewed and extensively tested by Johan
2958
2959         * tests/parser/Foo-expected.gidl:
2960         * tests/parser/foo-object.h:
2961         * tests/parser/foo.c:
2962         * tools/gidlnode.c:
2963         * tools/gidlnode.h:
2964         * tools/gidlwriter.c:
2965         * tools/scanner.c:
2966         * tools/scanner.h:
2967         * tools/scannerlexer.l:
2968         * tools/scannerparser.y:
2969
2970         Add support for scanning for gtk-doc comments inside
2971         C source files. Add tests
2972
2973 2008-03-10  Johan Dahlin  <johan@gnome.org>
2974
2975         * tests/parser/Makefile.am:
2976         * tests/parser/foo.c:
2977         * tools/scanner.c:
2978         * tools/scanner.h:
2979         * tools/scannerparser.y:
2980         Add an api to lex filenames.
2981         Lex all source .c files passed in on the command line.
2982         Scan sources in a test and a couple of private structures
2983         which should not be included in the generated gidl
2984
2985 2008-03-10  Johan Dahlin  <johan@gnome.org>
2986
2987         * tests/invoke/Makefile.am: Make the generated metadata 
2988         depend on the g-idl-compiler
2989
2990 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
2991
2992         * tools/gidlmodule.c
2993         * tools/gidlmodule.h
2994         * tools/gidlnode.c
2995         * tools/gidlnode.h
2996         Remove the old g-idl-compiler code.
2997
2998
2999 2008-02-22  Mark Doffman  <mark.doffman@codethink.co.uk>
3000
3001         * tools/quote-file.sh
3002         * tools/compiler.c
3003         * tools/generate.c
3004         Move to using the 'C' struct compiler code.
3005
3006 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
3007
3008         * girepository/ginfo.c
3009         * tools/generate.c
3010         Change the way that external references with no namespace
3011         are dealt with. External references with no namespace
3012         are placed into the XML as-if they are a local reference.
3013         This is temporary, but helps with roundtrip tests.
3014
3015 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
3016
3017         * girepository/ginfo.c
3018         Add the ability to get the value of a constant of
3019         type TYPE_TAG_SYMBOL. In the case of a symbol the value
3020         is provided as a string.
3021
3022         This would deal properly with:
3023         typedef char* random;
3024         const random = "A string";
3025
3026 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
3027
3028         * girepository/ginfo.c
3029         * girepository/girepository.h
3030         * tools/generate.c
3031         Add a function to check if an enum is registered or not.
3032         Previously anything testing this relied on the g-type
3033         string offset having a value of 0.
3034
3035         * girepository/gmetadata.c
3036         * girepository/gmetadata.h
3037         * tools/generate.c
3038         Remove unneccesary or erroneous checks. There were two
3039         metadata validation checks which made sure that the blob
3040         sizes were the same as some magic numbers compiled into the code.
3041         This is wrong as it breaks any forwards compatibility that may
3042         be possible.
3043
3044         Checks were also present that made sure that unregistered type
3045         blobs had a value of 0 in the g-type offset field. This is
3046         unneccessary. If a type blob is unregistered then any value
3047         in its g-type field is simply invalid.
3048
3049 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
3050
3051         * girepository/ginfo.c
3052         * girepository/gmetadata.c
3053         * girepository/gmetadata.h
3054
3055           Change the metadata format to have a standard header
3056           for all the type blobs. Merge the SimpleTypeBlob
3057           and InterfaceTypeBlob into a union. A union of these
3058           two blobs existed previously but was not explicit
3059           in the metadata format.
3060
3061 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
3062
3063         * tools/gidlcompilercontext.c
3064         * tools/gidlcompilercontext.h
3065         * tools/gidlcompilerentrynode.c
3066         * tools/gidlcompilerentrynode.h
3067         * tools/gidlcompilertypenode.c
3068         * tools/gidlcompilertypenode.h
3069
3070         Add code to compile a tree of GIdlNodes to
3071         a 'C' struct representing the metadata.
3072         This is to aid cross-compiling. Previously
3073         the g-idl-compiler created a binary blob with
3074         data written in the byte order and alignment
3075         of the tool rather than the intended target.
3076
3077         Cleaned up and improved by Johan and Robert :-)
3078
3079 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
3080
3081         * girepository/ginvoke.c
3082         * girepository/girepository.h
3083         * girepository/gmetadata.c
3084         * girepository/gmetadata.h
3085         * tools/generate.c
3086         * tools/gidlparser.c
3087         Modify TYPE_TAG_INTERFACE to TYPE_TAG_SYMBOL
3088         to avoid confusion with the interface blob.
3089
3090         * tools/generate.c
3091         * tools/gidlparser.c
3092         Remove magic numbers and replace with type-tag
3093         enumeration symbols.
3094
3095         * girepository/gmetadata.c
3096         Add validate declaration.
3097
3098 2008-03-10  Jürg Billeter  <j@bitron.ch>
3099
3100         * tools/gidlparser.c: (parse_type_internal):
3101         * tools/scannerlexer.l:
3102         * tools/scannerparser.y:
3103         Support C99 _Bool type in scanner.
3104
3105 2008-03-10  Jürg Billeter  <j@bitron.ch>
3106
3107         * tests/parser/Foo-expected.gidl:
3108         * tests/parser/foo-object.h:
3109         * tests/parser/foo.c: (foo_enum_method):
3110         * tools/scanner.c: (g_igenerator_process_function_symbol):
3111         Don't skip functions that are defined in the namespace of a type
3112         that doesn't support methods, as for example enums.
3113
3114 2008-03-10  Johan Dahlin  <johan@gnome.org>
3115
3116         * gidl.dtd: Remove, we're using relaxng for now
3117
3118         * tests/parser/Foo-expected.gidl:
3119         * tests/parser/foo-object.h:
3120         * tests/parser/foo.c:
3121         Rename the enum/flags get_type functions to include the whole type.
3122
3123 2008-03-08  Marc-Andre Lureau  <marcandre.lureau@gmail.com>
3124
3125         * tools/gidlwriter.c (enum_generate): added "type-name",
3126         "get-type" and "deprecated" missing arguments.
3127         * tests/parser/Foo-expected.gidl:
3128         * tests/parser/foo-object.h: test enum type, and no type.
3129
3130 2008-03-06  Johan Dahlin  <jdahlin@async.com.br>
3131
3132         * configure.ac:
3133         Consistent checks, add missing 'test'
3134
3135 2008-03-05  Havoc Pennington  <hp@redhat.com>
3136
3137         * configure.ac: Take advantage of a libffi.pc if one exists, as it
3138         does on Fedora 8. Make libffi a hard requirement, since it was in
3139         practice anyway (was not really conditional in the code or
3140         makefile, only in configure).
3141
3142 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
3143
3144         reviewed by: Rob Taylor  <rob.taylor@codethink.co.uk>
3145         reviewed by: Johan Dahlin  <johan@gnome.org>
3146
3147         * tests/Makefile.am:
3148         * tests/roundtrips.sh:
3149         Modify the roundtrips test so that they do not use the
3150         --raw option of the gidl compiler but instead compile a
3151         shared library to use with g_module.
3152
3153         * tests/invoke/Makefile.am:
3154         * tests/invoke/invoke.c:
3155         Modify the invoke tests to build a shared library rather
3156         than use the --raw option.
3157
3158         * tests/invoke/invoke-namespace-find.sh: Removed:
3159         Noone knows why this was here, so removed.
3160
3161 2008-02-19  Rob Taylor  <rob.taylor@codethink.co.uk>
3162
3163         * tools/scanner.c: (g_igenerator_process_function_symbol):
3164         Move g_idl_node_can_have_member test later, as it broke spotting
3165         get_type's for nodes that can't have members.
3166
3167 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
3168
3169         * tools/gidlnode.h:
3170         * tools/gidlnode.c: (g_idl_node_can_have_member):
3171         Add g_idl_node_can_have_member.
3172
3173         * tools/scanner.c: (g_igenerator_process_function_symbol):
3174         Use g_idl_node_can_have_member to test if we should add a function
3175         as a member of the type node.
3176
3177 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
3178
3179         * gidl/GLib.gidl: Renamed to gidl/gobject-2.0.gidl:
3180         * gidl/Makefile.am:
3181         * tests/parser/Makefile.am:
3182         Rename GLib.gidl to gobject-2.0.gidl and install in /usr/share/gidl.
3183
3184 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
3185
3186         * tools/scanner.c: (main):
3187         Ignore -pthread when passed to g-idl-scanner.
3188
3189 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
3190
3191         * tools/grealpath.h: Added:
3192         * tools/scanner.c: (main):
3193         * tools/scannerlexer.l:
3194         * tools/Makefile.am:
3195         Always use absolute paths with symbolic links resolved when
3196         comparing filenames.
3197
3198 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
3199
3200         * gobject-introspection.pc.in:
3201         Provide variables for g-idl-parser, scanner and compiler in the
3202         pkgconfig file.
3203
3204 2008-02-13  Rob Taylor  <rob.taylor@codethink.co.uk>
3205
3206         * gcov.mak:
3207         * girepository/Makefile.am:
3208         * tools/Makefile.am:
3209         Rename GCOV_SOURCES to GCOVSOURCES to top automake complaining.
3210
3211 2008-02-10  Johan Dahlin  <johan@gnome.org>
3212
3213         * tests/parser/Foo-expected.gidl:
3214         * tests/parser/foo-object.h:
3215         * tests/parser/foo.c: (foo_boxed_copy), (foo_boxed_free),
3216         (foo_boxed_get_type), (foo_boxed_new), (foo_boxed_method):
3217         Add boxed test.
3218
3219 2008-02-10  Johan Dahlin  <johan@gnome.org>
3220
3221         * tests/parser/Foo-expected.gidl:
3222         * tests/parser/foo-object.h:
3223         * tests/parser/foo.c: (foo_enum_get_type), (foo_flags_get_type):
3224         Add enum and flags test.
3225
3226 2008-02-10  Johan Dahlin  <johan@gnome.org>
3227
3228         * Makefile.am:
3229         * configure.ac:
3230         * girepository/Makefile.am:
3231         Make 'make distcheck' work again.
3232
3233 2008-02-10  Johan Dahlin  <johan@gnome.org>
3234
3235         * m4/Makefile.am (EXTRA_DIST): its called as-compiler-flag.m4,
3236         not as-compiler.m4.
3237
3238         * tests/parser/Makefile.am: Only create Foo.gidl when running make
3239         check, eg exclude it from BUILT_SOURCES.
3240
3241 2008-02-08  Rob Taylor  <rob.taylor@codethink.co.uk>
3242
3243         * Makefile.am:
3244         * configure.ac:
3245         * gcov.mak: Added:
3246         * girepository/Makefile.am:
3247         * m4/Makefile.am: Added:
3248         * m4/as-compiler-flag.m4: Added:
3249         * m4/gcov.m4: Added:
3250         * tools/Makefile.am:
3251         Add ability to generate a coverage report.
3252         Adds configure option --enable-gcov and make rule 'check-coverage'.
3253
3254 2008-02-08  Rob Taylor  <rob.taylor@codethink.co.uk>
3255
3256         * Makefile.am:
3257         * configure.ac:
3258         * gidl/Makefile.am: Added:
3259         * girepository/Makefile.am: Added:
3260         * src/Makefile.am: Renamed to tools/Makefile.am:
3261         * src/compiler.c: Renamed to tools/compiler.c:
3262         * src/g-idl-offsets.pl: Renamed to tools/g-idl-offsets.pl:
3263         * src/generate.c: Renamed to tools/generate.c:
3264         * src/gidlmodule.c: Renamed to tools/gidlmodule.c:
3265         * src/gidlmodule.h: Renamed to tools/gidlmodule.h:
3266         * src/gidlnode.c: Renamed to tools/gidlnode.c:
3267         * src/gidlnode.h: Renamed to tools/gidlnode.h:
3268         * src/gidlparser.c: Renamed to tools/gidlparser.c:
3269         * src/gidlparser.h: Renamed to tools/gidlparser.h:
3270         * src/gidlwriter.c: Renamed to tools/gidlwriter.c:
3271         * src/gidlwriter.h: Renamed to tools/gidlwriter.h:
3272         * src/ginfo.c: Renamed to girepository/ginfo.c:
3273         * src/ginvoke.c: Renamed to girepository/ginvoke.c:
3274         * src/girepository.c: Renamed to girepository/girepository.c:
3275         * src/girepository.h: Renamed to girepository/girepository.h:
3276         * src/gmetadata.c: Renamed to girepository/gmetadata.c:
3277         * src/gmetadata.h: Renamed to girepository/gmetadata.h:
3278         * src/scanner.c: Renamed to tools/scanner.c:
3279         * src/scanner.h: Renamed to tools/scanner.h:
3280         * src/scannerlexer.l: Renamed to tools/scannerlexer.l:
3281         * src/scannerparser.y: Renamed to tools/scannerparser.y:
3282         * tests/invoke/Makefile.am:
3283         Split src/ into girepository/ and tools/
3284
3285         * Makefile.am:
3286         * configure.ac:
3287         * girepository/Makefile.am:
3288         * tests/Makefile.am:
3289         * tests/invoke/Makefile.am:
3290         * tests/parser/Makefile.am:
3291         * tests/roundtrips.sh:
3292         * tools/Makefile.am:
3293         Make distcheck work.
3294
3295 2008-02-04  Rob Taylor  <rob.taylor@codethink.co.uk>
3296
3297         * tests/invoke/invoke.c: (main):
3298         * tests/invoke/testfns.c: (test6), (test7):
3299         * tests/invoke/testfns.xml:
3300         Add tests for invokation with a GList argument.
3301         Also tests caller-owns return values.
3302
3303 2008-02-04  Rob Taylor  <robtaylor@floopily.org>
3304
3305         * src/ginfo.c:
3306         Add some documentation for GICallableInfo
3307
3308 2008-02-01  Mark Doffman  <mark.doffman@codethink.co.uk>
3309
3310         * gidl.dtd:
3311         Correct syntax errors in the DTD file.
3312         * relaxng/api.xml:
3313         * relaxng/c-types.xml:
3314         * relaxng/g-types.xml:
3315         * relaxng/util.xml:
3316         Add a RelaxNG specification for the GObject Introspection XML data.
3317         The Specification has validated all of the test files.
3318
3319 2008-01-25  Rob Taylor  <robtaylor@floopily.org>
3320
3321         * tests/roundtrips.sh:
3322         * tests/struct.test:
3323         Add roundtrip tests for structs.
3324
3325 2008-01-11  Johan Dahlin  <johan@gnome.org>
3326
3327         * src/scanner.c (g_igenerator_process_function_symbol):
3328         Refactor out g_idle_node_add_member.
3329         (create_node_from_gtype, create_node_from_ctype):
3330         Use case instead of if...else
3331         (get_type_from_type_id):
3332         Rename to create_node_from_gtype
3333         (get_type_from_ctype):
3334         Rename to create_node_from_ctype
3335
3336         Rename ginode -> node, gitype -> type, gifunc -> func.
3337
3338         * src/gidlnode.c (g_idl_node_add_member, g_idl_node_cmp):
3339         Two new functions, refactor out of scanner.c
3340
3341         * src/scanner.c: (g_igenerator_process_function_symbol):
3342         * src/scannerlexer.l:
3343         Do not save the content of the deprecated variable, only
3344         if it's set or not.
3345
3346 2008-01-11  Johan Dahlin  <johan@gnome.org>
3347
3348         * tests/parser/foo-object.h: Add a couple of comment parser tests.
3349
3350 2008-01-11  Jürg Billeter  <j@bitron.ch>
3351
3352         * src/scannerlexer.l:
3353         Fix GTK-Doc parsing.
3354
3355 2008-01-11  Jürg Billeter  <j@bitron.ch>
3356
3357         * src/scannerlexer.l:
3358         Fix GTK-Doc parsing.
3359
3360 2008-01-11  Jürg Billeter  <j@bitron.ch>
3361
3362         * src/scanner.c: (lookup_symbol):
3363         Return unresolved name if we find unknown symbol.
3364
3365 2008-01-11  Jürg Billeter  <j@bitron.ch>
3366
3367         * src/scanner.c: (g_igenerator_generate):
3368         Initialize GObject to fix scanning interface properties.
3369
3370         * tests/parser/Foo-expected.gidl:
3371         * tests/parser/foo-object.h:
3372         * tests/parser/foo.c: (foo_interface_get_type):
3373         Test interfaces with GObject prerequisite.
3374
3375         * tests/parser/Makefile.am:
3376         Set G_DEBUG=fatal_warnings to abort test on warnings and criticals.
3377
3378 2007-12-27  Johan Dahlin  <johan@gnome.org>
3379
3380         * src/scannerlexer.l:
3381         Parse gtk-doc comments.
3382
3383         * src/gidlwriter.c: (function_generate):
3384         Reorganize, avoid duplication and add support for
3385         writing deprecated functions.
3386
3387         * src/scannerparser.y:
3388         * src/scanner.h:
3389         Add new structure CDirective and functions to create/free them.
3390
3391         * src/scanner.c: (g_igenerator_process_function_symbol),
3392         (g_igenerator_process_unregistered_struct_typedef),
3393         (g_igenerator_process_struct_typedef),
3394         (g_igenerator_process_union_typedef),
3395         (g_igenerator_process_enum_typedef),
3396         (g_igenerator_process_function_typedef), (g_igenerator_add_symbol),
3397         (g_igenerator_start_preprocessor):
3398         Parse @deprecated directive for functions.
3399         Remove some more C99isms.
3400         Send in -C to cpp to avoid stripping comments.
3401
3402         * tests/parser/foo-object.h:
3403         * tests/parser/Foo-expected.gidl:
3404         Add deprecated directive
3405
3406 2007-12-27  Johan Dahlin  <johan@gnome.org>
3407
3408         * src/scannerlexer.l (intsuffix): Add emacs mode line and
3409         escape ' and " so it looks more like C.
3410
3411         * src/scanner.c:
3412         Unlink temporary file used.
3413
3414 2007-12-27  Johan Dahlin  <johan@gnome.org>
3415
3416         * src/scanner.c: (g_igenerator_new), (g_igenerator_free),
3417         (g_igenerator_start_preprocessor), (main):
3418         * src/scanner.h:
3419         * src/scannerparser.y:
3420         Plug a couple of simple memory leaks.
3421
3422 2007-12-27  Johan Dahlin  <johan@gnome.org>
3423
3424         * src/scanner.c: (g_igenerator_parse_macros),
3425         (g_igenerator_start_preprocessor), (g_igenerator_set_verbose),
3426         (main):
3427         * src/scanner.h:
3428         * src/scannerparser.y:
3429         * tests/parser/Makefile.am:
3430
3431         Improve error reporting, return when the preprocessor fails.
3432         Add a verbose parameter, to aid debugging.
3433         Revert to using a temporary file to communicate between the
3434         preprocessor and the parser, because we need to wait for
3435         the exit code from the pre-processor before starting to parse.
3436
3437 2007-12-16  Johan Dahlin  <jdahlin@async.com.br>
3438
3439         * src/Makefile.am: Rename clexer.l to scannerlexer.l and
3440         cparser.y to scannerparser.y
3441
3442 2007-12-11  Johan Dahlin  <johan@gnome.org>
3443
3444         * src/clexer.l:
3445         * src/cparser.y:
3446         * src/scanner.c: (g_igenerator_new):
3447         * src/scanner.h:
3448         Get rid of the global the_generator variable.
3449
3450 2007-12-10  Johan Dahlin  <johan@gnome.org>
3451
3452         * src/scanner.c (main): Add an output option,
3453         add checks for required parameters
3454
3455         * src/Makefile.am:
3456         set BUILD_SOURCES and CLEANFILES properly
3457
3458         * src/gidlwriter.c: (g_writer_write_inline), (g_writer_write),
3459         (g_writer_write_indent), (g_writer_write_unindent),
3460         (field_generate), (value_generate), (constant_generate),
3461         (property_generate), (function_generate), (vfunc_generate),
3462         (signal_generate), (interface_generate), (struct_generate),
3463         (union_generate), (boxed_generate), (enum_generate),
3464         (node_generate), (g_writer_write_module), (g_idl_writer_save_file):
3465         * src/gidlwriter.h:
3466         * src/scanner.c: (g_igenerator_generate):
3467         * src/scanner.h:
3468         * src/scannerwriter.c:
3469
3470         Refactor scannerwriter to only be tied to a GIdlModule and move
3471         it (again!) to gidlwriter.c. Change the writer function to take
3472         a filename.
3473
3474 2007-12-10  Johan Dahlin  <johan@gnome.org>
3475
3476         * src/Makefile.am:
3477         * src/scanner.c: (g_igenerator_generate):
3478         * src/scanner.h:
3479         * src/scannerwriter.c: (g_igenerator_write_inline),
3480         (g_igenerator_write), (g_igenerator_write_indent),
3481         (g_igenerator_write_unindent), (field_generate), (value_generate),
3482         (constant_generate), (property_generate), (function_generate),
3483         (vfunc_generate), (signal_generate), (interface_generate),
3484         (struct_generate), (union_generate), (boxed_generate),
3485         (enum_generate), (node_generate), (module_generate),
3486         (g_scanner_write_file):
3487
3488         Move the scanner gidl writing to a separate source file.
3489
3490 2007-12-10  Johan Dahlin  <johan@gnome.org>
3491
3492         * src/cparser.y:
3493         * src/scanner.c:
3494         * src/scanner.h:
3495         Move over all CType construction functions.
3496
3497         * tests/parser/Makefile.am:
3498         Be verbose when printing parsing tests results.
3499
3500 2007-12-10  Johan Dahlin  <johan@gnome.org>
3501
3502         * src/scanner.c (g_igenerator_start_preprocessor): Refactor
3503         preprocessor handling to here. Start cpp insteado of cc -E,
3504         always include -U__GNUC__, since it's specific to the preprocessor
3505         we use.
3506
3507         * tests/parser/Makefile.am (check-local): Silent diff and skip
3508         -U__GNUC__ which is always defined now
3509
3510 2007-12-10  Johan Dahlin,,,  <jdahlin@plasttroll>
3511
3512         reviewed by: <delete if not using a buddy>
3513
3514         * src/scanner.c: (g_igenerator_start_preprocessor), (main):
3515         * tests/parser/Makefile.am:
3516
3517 2007-12-09  Johan Dahlin  <johan@gnome.org>
3518
3519         * src/scanner.c:
3520         Use GOption for command line options.
3521         (g_igenerator_new, main): Simplify constructor and they way
3522         parameters are passed into it.
3523
3524         * src/cparser.y:
3525         * src/Makefile.am:
3526         * src/clexer.l:
3527         * src/cparser.y:
3528         * src/gen-introspect.c:
3529         * src/gen-introspect.h:
3530         * src/scanner.c:
3531         Rename gen-introspect.[ch] to scanner.[ch]
3532
3533 2007-12-09  Johan Dahlin  <johan@gnome.org>
3534
3535         * TODO: Update
3536
3537         * src/Makefile.am: Rename gen-introspect to g-idl-scanner,
3538         don't make the repository library and the other utilites link against
3539         gthread-2.0
3540
3541         * src/gen-introspect.c: (g_igenerator_create_object),
3542         (g_igenerator_create_interface), (g_igenerator_create_boxed),
3543         (g_igenerator_create_enum), (g_igenerator_create_flags),
3544         (g_igenerator_process_module_symbol),
3545         (g_igenerator_process_module), (g_igenerator_generate), (main):
3546         * src/gen-introspect.h:
3547         Refactor g_igenerator_process_types into smaller pieces.
3548
3549         * tests/parser/Makefile.am:
3550         Depend on the gen-introspect binary
3551
3552 2007-12-09  Johan Dahlin  <johan@gnome.org>
3553
3554         * src/gen-introspect.c (g_igenerator_process_types):
3555         Break into smaller pieces, one for each generated node type.
3556
3557 2007-12-08  Johan Dahlin  <johan@gnome.org>
3558
3559         * src/gen-introspect.c: (g_igenerator_process_types),
3560         (g_igenerator_add_module):
3561         * tests/parser/Foo-expected.gidl:
3562         * tests/parser/foo-object.h:
3563         * tests/parser/foo.c: (foo_subobject_class_init),
3564         (foo_subobject_init):
3565
3566         Add a subobject test and make sure to register defined classes
3567         in the lookup symbol hash table.
3568
3569 2007-12-08  Johan Dahlin  <johan@gnome.org>
3570
3571         * gidl/GLib.gidl:
3572         * src/Makefile.am:
3573         * src/gen-introspect.c: (g_igenerator_new), (lookup_symbol),
3574         (g_igenerator_process_types), (g_igenerator_add_module),
3575         (g_igenerator_add_include_idl), (main):
3576         * src/gen-introspect.h:
3577         * tests/parser/Makefile.am:
3578         * tests/parser/Foo-expected.gidl:
3579
3580         Change the gen-introspect to generate namespaced module names,
3581         such as GLib.Object instead of GObject.
3582         Add a GLib.gidl which introduces GLib.Object and GLib.InitiallyUnowned,
3583         add a --include-idl parameter to gen-introspect,
3584         and update the parser test.
3585
3586 2007-12-08  Johan Dahlin  <johan@gnome.org>
3587
3588         * src/gen-introspect.c:
3589         Move main to the end of the file and attempt to make it valid
3590         ansi c.
3591
3592         * tests/parser/Makefile.am (BUILT_SOURCES): Remove .repo here,
3593         we're not quite ready to generate metadata yet.
3594
3595         * tests/parser/:
3596         * configure.ac:
3597
3598         Add a simple gen-introspect parser test
3599
3600 2007-12-06  Gustavo J. A. M. Carneiro  <gjc@gnome.org>
3601
3602         reviewed by: Johan Dahlin  <johan@gnome.org>
3603
3604         * configure.ac:
3605         * gobject-introspection.pc.in:
3606         * src/Makefile.am:
3607         * src/compiler.c: (format_output), (write_out_metadata), (main):
3608         * src/gen-introspect.c: (main):
3609         * src/gen-introspect.h:
3610         * src/generate.c: (write_callable_info), (write_repository),
3611         (load_metadata), (main):
3612         * src/gidlmodule.c: (g_idl_module_new),
3613         (g_idl_module_build_metadata):
3614         * src/gidlmodule.h:
3615         * src/gidlparser.c: (start_element_handler):
3616         * src/ginfo.c: (g_info_new), (g_info_from_entry),
3617         (g_base_info_get_name), (g_base_info_get_namespace),
3618         (g_base_info_is_deprecated), (g_base_info_get_annotation),
3619         (g_base_info_get_metadata), (g_function_info_get_symbol),
3620         (g_function_info_get_flags), (g_function_info_get_property),
3621         (g_function_info_get_vfunc), (signature_offset), (g_type_info_new),
3622         (g_callable_info_may_return_null),
3623         (g_callable_info_get_caller_owns), (g_callable_info_get_n_args),
3624         (g_callable_info_get_arg), (g_arg_info_get_direction),
3625         (g_arg_info_is_return_value), (g_arg_info_is_dipper),
3626         (g_arg_info_is_optional), (g_arg_info_may_be_null),
3627         (g_arg_info_get_ownership_transfer), (g_type_info_is_pointer),
3628         (g_type_info_get_tag), (g_type_info_get_param_type),
3629         (g_type_info_get_interface), (g_type_info_get_array_length),
3630         (g_type_info_is_zero_terminated),
3631         (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
3632         (g_error_domain_info_get_quark), (g_error_domain_info_get_codes),
3633         (g_value_info_get_value), (g_field_info_get_flags),
3634         (g_field_info_get_size), (g_field_info_get_offset),
3635         (g_registered_type_info_get_type_name),
3636         (g_registered_type_info_get_type_init),
3637         (g_struct_info_get_n_fields), (g_struct_info_get_field),
3638         (g_struct_info_get_n_methods), (g_struct_info_get_method),
3639         (find_method), (g_struct_info_find_method),
3640         (g_enum_info_get_n_values), (g_enum_info_get_value),
3641         (g_object_info_get_parent), (g_object_info_get_type_name),
3642         (g_object_info_get_type_init), (g_object_info_get_n_interfaces),
3643         (g_object_info_get_interface), (g_object_info_get_n_fields),
3644         (g_object_info_get_field), (g_object_info_get_n_properties),
3645         (g_object_info_get_property), (g_object_info_get_n_methods),
3646         (g_object_info_get_method), (g_object_info_find_method),
3647         (g_object_info_get_n_signals), (g_object_info_get_signal),
3648         (g_object_info_get_n_vfuncs), (g_object_info_get_vfunc),
3649         (g_object_info_get_n_constants), (g_object_info_get_constant),
3650         (g_interface_info_get_n_prerequisites),
3651         (g_interface_info_get_prerequisite),
3652         (g_interface_info_get_n_properties),
3653         (g_interface_info_get_property), (g_interface_info_get_n_methods),
3654         (g_interface_info_get_method), (g_interface_info_find_method),
3655         (g_interface_info_get_n_signals), (g_interface_info_get_signal),
3656         (g_interface_info_get_n_vfuncs), (g_interface_info_get_vfunc),
3657         (g_interface_info_get_n_constants),
3658         (g_interface_info_get_constant), (g_property_info_get_flags),
3659         (g_signal_info_get_flags), (g_signal_info_get_class_closure),
3660         (g_signal_info_true_stops_emit), (g_vfunc_info_get_flags),
3661         (g_vfunc_info_get_offset), (g_vfunc_info_get_signal),
3662         (g_constant_info_get_value), (g_union_info_get_n_fields),
3663         (g_union_info_get_field), (g_union_info_get_n_methods),
3664         (g_union_info_get_method), (g_union_info_is_discriminated),
3665         (g_union_info_get_discriminator_offset),
3666         (g_union_info_get_discriminator):
3667         * src/ginvoke.c: (g_function_info_invoke):
3668         * src/girepository.c: (g_irepository_register),
3669         (g_irepository_unregister), (g_irepository_get_default),
3670         (count_interfaces), (g_irepository_get_n_infos), (find_interface),
3671         (g_irepository_get_info), (g_irepository_find_by_name),
3672         (g_irepository_get_shared_library),
3673         (g_irepository_build_search_path), (g_irepository_register_file),
3674         (g_irepository_error_quark):
3675         * src/girepository.h:
3676         * src/gmetadata.c: (g_metadata_get_dir_entry),
3677         (g_metadata_check_sanity), (validate_header),
3678         (validate_array_type_blob), (validate_iface_type_blob),
3679         (validate_param_type_blob), (validate_error_type_blob),
3680         (validate_type_blob), (validate_arg_blob),
3681         (validate_signature_blob), (validate_function_blob),
3682         (validate_callback_blob), (validate_constant_blob),
3683         (validate_value_blob), (validate_field_blob),
3684         (validate_property_blob), (validate_signal_blob),
3685         (validate_vfunc_blob), (validate_struct_blob),
3686         (validate_enum_blob), (validate_object_blob),
3687         (validate_interface_blob), (validate_errordomain_blob),
3688         (validate_union_blob), (validate_blob), (validate_directory),
3689         (validate_annotations), (g_metadata_validate), (_g_metadata_init),
3690         (g_metadata_new_from_memory), (g_metadata_new_from_const_memory),
3691         (g_metadata_new_from_mapped_file), (g_metadata_free),
3692         (g_metadata_set_module), (g_metadata_get_namespace):
3693         * src/gmetadata.h:
3694         * tests/Makefile.am:
3695         * tests/invoke/Makefile.am:
3696         * tests/invoke/invoke-namespace-find.sh:
3697         * tests/invoke/invoke.c: (main):
3698
3699         Add a namespace/shared library mapping. fixes #313268.
3700
3701 2007-12-03  Johan Dahlin  <johan@gnome.org>
3702
3703         * src/gidlparser.c (parse_type_internal): Disable char/gchar and
3704         guchar for now.
3705
3706 2007-11-30  Jürg Billeter  <j@bitron.ch>
3707
3708         * configure.ac:
3709         * src/Makefile.am:
3710         * src/clexer.l:
3711         * src/cparser.y:
3712         * src/gen-introspect.c: (g_idl_node_cmp), (g_igenerator_new),
3713         (g_igenerator_write_inline), (g_igenerator_write),
3714         (g_igenerator_write_indent), (g_igenerator_write_unindent),
3715         (field_generate), (value_generate), (constant_generate),
3716         (property_generate), (function_generate), (vfunc_generate),
3717         (signal_generate), (interface_generate), (struct_generate),
3718         (union_generate), (boxed_generate), (enum_generate),
3719         (node_generate), (module_generate), (get_type_from_type_id),
3720         (str_replace), (g_igenerator_process_properties),
3721         (g_igenerator_process_signals), (g_igenerator_process_types),
3722         (get_type_from_ctype), (g_igenerator_process_function_symbol),
3723         (g_igenerator_process_unregistered_struct_typedef),
3724         (g_igenerator_process_struct_typedef),
3725         (g_igenerator_process_union_typedef),
3726         (g_igenerator_process_enum_typedef),
3727         (g_igenerator_process_function_typedef),
3728         (g_igenerator_process_constant), (g_igenerator_process_symbols),
3729         (g_igenerator_add_symbol), (g_igenerator_is_typedef),
3730         (g_igenerator_generate), (main), (csymbol_new),
3731         (csymbol_get_const_boolean), (ctype_new), (ctype_copy),
3732         (cbasic_type_new), (ctypedef_new), (cstruct_new), (cunion_new),
3733         (cenum_new), (cpointer_new), (carray_new), (cfunction_new),
3734         (eat_hspace), (eat_line), (read_identifier),
3735         (g_igenerator_parse_macros):
3736         * src/gen-introspect.h:
3737
3738         Import gen-introspect to generate introspection information by
3739         parsing C headers.
3740
3741 2007-11-30  Jürg Billeter  <j@bitron.ch>
3742
3743         * src/gidlnode.c: (g_idl_node_new): support creating callback nodes
3744
3745 2007-11-30  Jürg Billeter  <j@bitron.ch>
3746
3747         * src/gidlparser.c: (end_element_handler): Don't leave requires
3748         state too early.
3749
3750 2007-11-29  Johan Dahlin  <johan@gnome.org>
3751
3752         * src/gidlparser.c (parse_type_internal): Add char,
3753         gchar and guchar to the builtin types.
3754
3755 2007-11-26  Johan Dahlin  <johan@gnome.org>
3756
3757         * src/ginfo.c: (g_object_info_get_type_name),
3758         (g_object_info_get_type_init):
3759         * src/girepository.c: (g_irepository_is_registered):
3760         * src/girepository.h:
3761
3762         Add g_object_info_get_type_name, g_object_info_get_type_init and
3763         g_irepository_is_registered.
3764
3765 2006-08-14  Jürg Billeter  <j@bitron.ch>
3766
3767       * src/gidlparser.c: (end_element_handler): Don't leave
3768         namespace and implements states too early.
3769         Fixes #351264
3770
3771 2007-11-26  Johan Dahlin  <johan@gnome.org>
3772
3773         * src/gmetadata.c (validate_struct_blob):
3774         pass blob_type to validate_function_blob instead of
3775         hard-coding BLOB_TYPE_STRUCT.
3776
3777         Patch by Torsten Schoenfeld, fixes #314190
3778
3779 2006-10-03  Torsten Schoenfeld  <tsch@cvs.gnome.org>
3780
3781         * src/compiler.c, src/generate.c, src/gidlnode.c,
3782         src/gidlparser.c, src/ginfo.c, src/girepository.c,
3783         tests/invoke/invoke.c, test/invoke/testfns.c: Hush compiler
3784         warnings about return values, signedness mismatches, unused
3785         variables, and unhandles enum values in switch statements.
3786
3787         * tests/invoke/Makefile.am: Don't install the invoke test program.
3788         Add -I ../../src to the cflags used for the test functions files.
3789
3790 2005-08-31  Torsten Schoenfeld  <tsch@cvs.gnome.org>
3791
3792         * src/girepository.h: Export g_invoke_error_quark.
3793
3794 2005-08-31  Torsten Schoenfeld  <tsch@cvs.gnome.org>
3795
3796         * src/ginvoke.c: Remove the fallback implementation of
3797         g_function_info_invoke since we now formally depend on libffi.
3798
3799 2005-07-25  Matthias Clasen  <mclasen@redhat.com>
3800
3801         * src/Makefile, tests/Makefile, tests/invoke/Makefile:
3802         Remove these files from cvs, as they are now generated.
3803
3804         * src/gmetadata.c (validate_iface_type_blob): Don't
3805         complain if blob->pointer is not set, since that
3806         happens for enum and flag types.  (#308935, Gustavo
3807         Carneiro)
3808
3809         * Commit an autoconf-conversion patch by
3810         Gustavo Carneiro (#308708)
3811
3812 2005-05-24  Matthias Clasen  <mclasen@redhat.com>
3813
3814         * src/compiler.c (main): Use it here to validate
3815         the generated metadata.
3816
3817         * src/gmetadata.[hc]: Add code to validate a
3818         metadata blob.
3819
3820         * metadata-format.txt: Updates
3821
3822 2005-05-22  Matthias Clasen  <mclasen@redhat.com>
3823
3824         * tests/*: Add struct offsets to field and vfunc
3825         elements.
3826
3827         * src/generate.c (write_vfunc_info): Write offset
3828         information for vfuncs.
3829
3830         * src/gidlnode.c (g_idl_node_build_metadata): Write
3831         the struct offsets into the metadata.
3832
3833         * src/gidlparser.c: Parse the offset attributes of
3834         field and vfunc elements.
3835
3836         * src/gidlnode.h: Add offset members to field and
3837         vfunc nodes.
3838
3839 2005-05-21  Matthias Clasen  <mclasen@redhat.com>
3840
3841         * TODO: Updates.
3842
3843         * gidl.dtd: Updates.
3844
3845         * src/g-idl-offsets.pl: A perl script which reads a .gidl
3846         file, creates, compiles and runs a C file, and folds the
3847         resulting struct offsets back into the .gidl file.
3848
3849 2005-05-20  Matthias Clasen  <mclasen@redhat.com>
3850
3851         * src/gidlparser.c (start_field): Make fields in objects
3852         work.
3853
3854         * src/gidlmodule.c: Include string.h
3855
3856         * TODO: Updates.
3857         :
3858
3859         * metadata-format.txt: Cleanup basic types.
3860         * src/*: Adapt to the changes.
3861         * tests/*: Adapt to the changes.
3862         * examples/gdk-pixbuf.gidl: Adapt to the changes.
3863
3864         * src/gidlnode.c (g_idl_node_get_size): Report the correct
3865         size for enum blobs.
3866         (g_idl_node_get_full_size): Report the correct size for
3867         function blobs.
3868
3869         * src/gidlmodule.c (g_idl_module_build_metadata): Add some
3870         error checking for blob sizes.
3871
3872 2005-05-19  Matthias Clasen  <mclasen@redhat.com>
3873
3874         * src/gidlnode.c (g_idl_node_build_metadata): Correctly handle
3875         interface types for which is_pointer is FALSE, e.g. enums.
3876
3877         * src/gidlnode.c (g_idl_node_get_full_size)
3878         * src/gidlparser.c (parse_type_internal):
3879         * src/generate.c (write_type_info): Support unspecialized
3880         lists, hashtables and errors. Also emit a '*' after these.
3881
3882         * TODO: Updates
3883
3884 2005-05-17  Matthias Clasen  <mclasen@redhat.com>
3885
3886         * TODO: Updates
3887
3888         * metadata-format.txt: Cleanups by Maciej Katafiasz.
3889
3890 2005-05-15  Matthias Clasen  <mclasen@redhat.com>
3891
3892         * src/*.c: Change the directory to be addressed by
3893         1-based indexes, and use an index of zero to mean
3894         'no object'.
3895
3896 2005-05-15  Matthias Clasen  <mclasen@redhat.com>
3897
3898         * tests/roundtrips.sh (SIMPLE_TESTS): Add union.test.
3899
3900         * tests/union.test: Add a union test.
3901
3902         * src/generate.c: Handle unions.
3903
3904         * src/girepository.h:
3905         * src/ginfo.c: Add GIUnionInfo and functions to access it.
3906
3907         * src/gidlnode.c: Handle GIdlNodeUnion nodes.
3908
3909         * src/gidlparser.c (start_union): Parse <union> elements.
3910
3911         * src/gidlnode.h: Add a GIdlNodeUnion.
3912
3913         * gidl.dtd: Add a <union> element.
3914
3915         * src/gmetadata.c (g_metadata_check_sanity): Check
3916         union_blob_size.
3917
3918         * src/gmetadata.h: Add union_blob_size to Header,
3919         add a UnionBlob.
3920
3921         * metadata-format.txt: Add a UnionBlob.
3922
3923 2005-05-13  Matthias Clasen  <mclasen@redhat.com>
3924
3925         * tests/*: Update testcases.
3926
3927         * src/generate.c (write_callable_info): Don't forget to
3928         write transfer and null-ok attributes for return types
3929         and parameters.
3930
3931         * src/girepository.h:
3932         * src/ginfo.c (g_callable_info_may_return_null):
3933         New function to find out if a function may return NULL.
3934
3935         * src/compiler.c (format_output): Make the generated
3936         C code compile.
3937
3938         * README: Point to a recent libffi snapshot.
3939
3940         * tests/invoke/*: Some invoke tests.
3941
3942         * src/Makefile: Add ginvoke.c and the necessary
3943         libffi information.
3944
3945         * src/girepository.h (g_function_info_invoke): Add
3946         a GError argument.
3947
3948         * src/ginvoke.c (g_function_info_invoke): Initial
3949         implementation of invoke functionality based on libffi.
3950
3951         * src/gidlnode.c (g_idl_node_build_metadata): Pass the
3952         strings and types hash tables in the right order when
3953         recursing.
3954         (find_entry_node): Free the name parts.
3955
3956 2005-05-12  Johan Dahlin  <johan@gnome.org>
3957
3958         * src/generate.c: Generate consistent end tags.
3959
3960         * tests/*: Update
3961
3962 2005-05-12  Matthias Clasen  <mclasen@redhat.com>
3963
3964         * TODO: Updates
3965
3966         * src/gidlparser.c (start_function): Actually add
3967         methods to objects.  (Steven Walter)
3968
3969         * src/girepository.h:
3970         * src/ginfo.c: Rename Transfer and Direction to
3971         GITransfer and GIDirection. (Torsten Schoenfeld)
3972
3973         * tests/*: Make tests work with the changes in name
3974         handling.
3975
3976         * src/gidlnode.c (find_entry_node): Parse qualified
3977         names and generate xref nodes for them if needed. Don't
3978         require all modules to be loaded any more.
3979
3980         * src/gidlmodule.c (g_idl_module_build_metadata): Choke
3981         on '.' in names.
3982
3983         * src/ginfo.c (g_object_info_get_parent): Return NULL
3984         if blob->parent is 0. Still need to make sure index
3985         0 is not used.
3986
3987         * src/generate.c: Generate qualified names when
3988         referring to non-local types. Emit transfer attribute
3989         for return types.
3990
3991         * src/compiler.c (format_output): Put the function
3992         attributes where gcc accepts them.
3993
3994 2005-05-11  Matthias Clasen  <mclasen@redhat.com>
3995
3996         * src/compiler.c (main): Add a --verbose cmdline option
3997         and only log messages if it is specified.
3998
3999         * src/gidlnode.h:
4000         * src/gidlnode.c (init_stats, dump_stats): Collect some
4001         statistics on string and type sharing.
4002
4003         * src/gidlmodule.c (g_idl_module_build_metadata): Use
4004         g_message() instead of fprintf().
4005
4006         * src/gidlnode.c (g_idl_node_free): Make this more robust.
4007         (g_idl_node_get_size): Implement for structs.
4008         (g_idl_node_get_full_size): Handle parent being NULL.
4009         (serialize_type): Handle lookup failures more gracefully.
4010
4011 2005-05-10  Matthias Clasen  <mclasen@redhat.com>
4012
4013         * src/gidlnode.c (g_idl_node_get_full_size): Correct the
4014         size calculation for 2-parameter types and for objects.
4015
4016         * src/compiler.c: Add a cmdline option for debug output
4017         and install a log handler to implement it.
4018         * src/gidlnode.c: Add some debug spew.
4019
4020         * TODO: Updates
4021
4022         * src/gidlmodule.c (g_idl_module_build_metadata): Don't
4023         forget to count the module name when calculating the
4024         required size for the metadata.
4025
4026         * src/gidlnode.c:
4027         * src/gidlparser.c: Fix compiler warnings.
4028
4029 2005-05-09  Matthias Clasen  <mclasen@redhat.com>
4030
4031         * src/compiler.c (main): Free the option context.
4032
4033         * gidl.dtd: Clean up handling of names. All elements
4034         have a "name", only the elements corresponding to
4035         actual callable functions (function, method, constructor),
4036         have an additional "symbol" attribute holding the
4037         dlsym()-able function name.
4038
4039         * src/generate.c: Adapt to generate xml matching the
4040         new dtd.
4041
4042         * src/gidlparser.c:
4043         * src/gidlnode.c: Adapt to parse the new dtd.
4044
4045         * tests/*.test: Adjust to the new dtd.
4046
4047         * metadata-format.txt:
4048         * src/gmetadata.h: Remove the short_name field
4049         from the ValueBlob.
4050         * src/gmetadata.c: Shrink size of ValueBlob to 12.
4051         * src/girepository.h:
4052         * src/ginfo.c (g_value_info_get_short_name): Removed
4053
4054 2005-05-09  Matthias Clasen  <mclasen@redhat.com>
4055
4056         * gidl.dtd: Allow constructors for boxed types,
4057         patch by Jonathan Blandford.
4058
4059
4060 2005-05-09  Matthias Clasen  <mclasen@redhat.com>
4061
4062         * --- Initial import ---