04c2ea9d902a0cf193dd7c0f0979b603f98f029e
[platform/upstream/gobject-introspection.git] / ChangeLog
1 2008-04-22  Havoc Pennington  <hp@pobox.com>
2
3         * girepository/ginvoke.c (g_function_info_invoke): If a symbol is
4         not in metadata->module, look for it in the global module, in case
5         some other object or the app itself provides the symbol.
6
7 2008-04-22  Havoc Pennington  <hp@pobox.com>
8
9         * girepository/gmetadata.c (_g_metadata_init): hack to avoid
10         dlopening a library that is already in the main app, by checking
11         whether one of the lib's symbols is already loaded.
12
13 2008-04-22  Johan Dahlin  <jdahlin@async.com.br>
14
15         * tests/parser/Foo-expected.gidl:
16         * tests/parser/foo-object.h:
17         Add a callback test
18
19 2008-04-22  Havoc Pennington  <hp@pobox.com>
20
21         * girepository/ginfo.c (g_interface_info_find_method):
22         Use interface_blob_size not object_blob_size to compute offset.
23
24 2008-04-22  Havoc Pennington  <hp@pobox.com>
25
26         * girepository/gmetadata.c (_g_metadata_init): remove
27         G_MODULE_BIND_LOCAL flag when loading libraries, since some libs
28         (Glade and Clutter for example) rely on being loaded globally.
29
30 2008-04-22  Havoc Pennington  <hp@pobox.com>
31
32         * girepository/ginfo.c (g_registered_type_info_get_g_type): new
33         function to get the GType given a RegisteredTypeInfo
34
35 2008-04-22  Johan Dahlin  <johan@gnome.org>
36
37         * COPYING: Add a LGPL license, to prevent automake to
38         put in a copy of GPL here. Pointed out by Havoc.
39
40         * girepository/ginfo.c (g_info_from_entry), (g_type_info_new),
41         (g_type_info_is_pointer), (g_type_info_get_tag),
42         (g_type_info_get_param_type), (g_type_info_get_interface),
43         (g_type_info_get_array_length), (g_type_info_is_zero_terminated),
44         (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
45         (g_error_domain_info_get_codes), (g_enum_info_get_value),
46         (g_object_info_get_interface), (g_object_info_get_field),
47         (g_interface_info_get_prerequisite),
48         (g_signal_info_get_class_closure), (g_constant_info_get_value):
49         * girepository/ginvoke.c (get_ffi_type):
50         * girepository/girepository.h:
51         * girepository/gmetadata.c (g_metadata_get_dir_entry),
52         (g_metadata_check_sanity), (validate_header),
53         (validate_array_type_blob), (validate_iface_type_blob),
54         (validate_param_type_blob), (validate_error_type_blob),
55         (validate_type_blob), (validate_constant_blob),
56         (validate_struct_blob), (validate_enum_blob):
57         * girepository/gmetadata.h:
58         * tests/Makefile.am:
59         * tests/invoke/Makefile.am:
60         * tests/invoke/invoke.c (main):
61         * tests/roundtrips.sh:
62         * tools/Makefile.am:
63         * tools/compiler.c (format_output), (write_out_metadata), (main):
64         * tools/generate.c (write_type_name), (write_type_info),
65         (write_constant_value), (write_enum_info), (load_metadata), (main):
66         * tools/gidlcompilercontext.c:
67         * tools/gidlcompilercontext.h:
68         * tools/gidlcompilerentrynode.c:
69         * tools/gidlcompilerentrynode.h:
70         * tools/gidlcompilertypenode.c:
71         * tools/gidlcompilertypenode.h:
72         * tools/gidlmodule.c (g_idl_module_build_metadata):
73         * tools/gidlmodule.h:
74         * tools/gidlnode.c (init_stats), (dump_stats),
75         (g_idl_node_get_size), (g_idl_node_get_full_size),
76         (g_idl_node_cmp), (g_idl_node_can_have_member),
77         (g_idl_node_add_member), (g_idl_node_param_direction_string),
78         (parse_int_value), (parse_uint_value), (parse_float_value),
79         (parse_boolean_value), (find_entry_node), (find_entry),
80         (serialize_type), (g_idl_node_build_metadata), (write_string):
81         * tools/gidlnode.h:
82         * tools/gidlparser.c (parse_type_internal):
83         * tools/quote-file.sh:
84         Revert revisions 157,149-148,136-129 and 120.
85         Move back to using g-idl-generate to generate the metadata and
86         avoids dependency on a c compiler.
87
88 2008-04-22  Johan Dahlin  <jdahlin@async.com.br>
89
90         * giscanner/girwriter.py:
91         * tools/g-ir-scanner:
92         Add an initial GIR writer and a --format option to g-ir-scanner
93
94 2008-04-21  Johan Dahlin  <johan@gnome.org>
95
96         * giscanner/cgobject.py: Use ctypes.util.find_library to locate
97         gobject-2.0 and raise ImportError if not found.
98
99         * giscanner/gidlparser.py:
100         * giscanner/gidlwriter.py:
101         * giscanner/gobjecttreebuilder.py:
102         * tools/g-ir-scanner:
103         Add a --include argument to include types from other idls.
104         Add a minimalistic GIDL parser (just objects for now)
105         Implement resolving of external type references and use it to
106         resolve parent types, argument types and return types.
107
108 2008-04-21  Johan Dahlin  <johan@gnome.org>
109
110         * giscanner/gidlwriter.py:
111         * giscanner/gobjecttreebuilder.py:
112         * giscanner/treebuilder.py:
113         Add support for properties.
114         Refactor Class/Interface support a bit, to share more code and
115         always initialize their method attribute to an empty list.
116
117 2008-04-21  Johan Dahlin  <johan@gnome.org>
118
119         * giscanner/cgobject.py:
120         Add a workaround for a glib bug interface introspection bug
121         (object_interface_list_properties, object_class_list_properties):
122         Cast the return value to GParamSpec.
123
124         * tests/parser/Foo-expected.gidl: Update
125         * tests/parser/foo.c: Add a string property
126
127         * giscanner/gobjecttreebuilder.py:
128         After stripping namespaces, remove the original
129         item to avoid duplication (GtkButton struct and Button object)
130
131 2008-04-21  Johan Dahlin  <johan@gnome.org>
132
133         * giscanner/gobjecttreebuilder.py:
134         * giscanner/treebuilder.py:
135         Strip namespaces before objects, so we'll export
136         GtkButton as Button in the gtk namespace
137
138 2008-04-21  Johan Dahlin  <johan@gnome.org>
139
140         * giscanner/gidlwriter.py:
141         * giscanner/gobjecttreebuilder.py:
142         * giscanner/treebuilder.py:
143         Add constructors for object/boxed types.
144
145 2008-04-21  Johan Dahlin  <johan@gnome.org>
146
147         * giscanner/gidlwriter.py:
148         * giscanner/gobjecttreebuilder.py:
149         Add support for boxed types
150
151 2008-04-21  Johan Dahlin  <johan@gnome.org>
152
153         * giscanner/giscannermodule.c: Mark structures as const,
154         wrap SourceType.const_string.
155
156         * tests/parser/foo-object.h: Add a couple of constants.
157
158         * giscanner/gidlwriter.py:
159         * giscanner/gobjecttreebuilder.py:
160         * giscanner/treebuilder.py:
161         Add basic support for interfaces
162
163         * tools/g-ir-scanner:
164         Add -o/--output for writing to a file
165
166 2008-04-21  Havoc Pennington  <hp@redhat.com>
167
168         * TODO: add some C API wishlist items I could think of quickly
169
170 2008-04-21  Johan Dahlin  <jdahlin@async.com.br>
171
172         * giscanner/gidlwriter.py:
173         * giscanner/xmlwriter.py:
174         Add a simple api for writing tags which can be used 
175         with the new 'with statement' in python 2.5
176
177 2008-04-21  Johan Dahlin  <johan@gnome.org>
178
179         * giscanner/gobjecttreebuilder.py:
180         Strip namespace and object prefix from method names.
181
182 2008-04-21  Johan Dahlin  <johan@gnome.org>
183
184         * tools/g-ir-scanner (main): Add --pkg option to pass in
185         pkg-config modules to get cflags from.
186
187         * giscanner/gidlwriter.py (GIDLWriter._write_method): 
188         Avoid duplication, reuse function writer for methods.
189
190 2008-04-21  Johan Dahlin  <jdahlin@async.com.br>
191
192         * giscanner/gidlwriter.py:
193         * giscanner/gobjecttreebuilder.py:
194         * giscanner/treebuilder.py:
195         * tools/g-ir-scanner:
196         Resolve libtool .la files.
197         Strip name spaces for methods.
198         Add function symbols
199
200 2008-04-20  Johan Dahlin  <jdahlin@async.com.br>
201
202         * giscanner/cgobject.py:
203         * giscanner/gidlwriter.py:
204         * giscanner/gobjecttreebuilder.py:
205         * giscanner/treebuilder.py:
206         Add support for classes and methods
207
208 2008-04-20  Johan Dahlin  <johan@gnome.org>
209
210         * giscanner/gidlwriter.py:
211         * giscanner/gobjecttreebuilder.py:
212         * giscanner/odict.py:
213         Avoid conflicts, keep the output ordered similar to
214         the order of the input.
215         Add a simple ordered dictionary implemenation
216
217 2008-04-19  Johan Dahlin  <johan@gnome.org>
218
219         * giscanner/cgobject.py:
220         * giscanner/gidlwriter.py:
221         * giscanner/gobjecttreebuilder.py:
222         * tools/g-ir-scanner:
223         Start introspecting get-type functions.
224         Implement support for GLib/GFlags GTypes.
225         Add a ctype based GObject binding.
226
227 2008-04-18  Johan Dahlin  <jdahlin@async.com.br>
228
229         * giscanner/gidlwriter.py:
230         * giscanner/xmlwriter.py:
231         * tools/g-ir-scanner:
232         Add a simplistic gidl writer, which can't do too much.
233
234 2008-04-18  Johan Dahlin  <johan@gnome.org>
235
236         * giscanner/sourcescanner.py:
237         * giscanner/treebuilder.py:
238         * tools/g-ir-scanner:
239         split tree building and source scanning interface to separate files.
240
241 2008-04-18  Johan Dahlin  <johan@gnome.org>
242
243         * tools/g-ir-scanner (Parameter.__init__): Start constructing
244         a real node tree.
245         - Add support for struct/parameter/return, start parsing of ctypes
246
247         * giscanner/giscannermodule.c: wrap GISourceType.child_list and
248         fix the style
249
250 2008-03-31  Johan Dahlin  <johan@gnome.org>
251
252         * tools/g-ir-scanner:
253         Start to build abstract syntax node of scanned sources.
254         Add support for cpp options.
255
256 2008-03-27  Johan Dahlin  <johan@gnome.org>
257
258         * giscanner/giscannermodule.c:
259         * giscanner/scannerlexer.l:
260         * giscanner/sourcescanner.c:
261         * tools/g-ir-scanner:
262
263         Add simple pre-processor using subprocess and a PIPE.
264         Change the parse_file apis to accept a file descriptor.
265
266 2008-03-25  Johan Dahlin  <johan@gnome.org>
267
268         * giscanner/__init__.py:
269         * tools/g-ir-scanner:
270         Fix a typo and add an example python test program.
271
272 2008-03-25  Johan Dahlin  <johan@gnome.org>
273         
274         * giscanner/__init__.py:
275         * giscanner/giscannermodule.c:
276         * giscanner/sourcescanner.c:
277         * giscanner/sourcescanner.h:
278         Add constants and wrap a few more SymbolType fields
279
280 2008-03-25  Johan Dahlin  <johan@gnome.org>
281         
282         * configure.ac:
283         * giscanner:
284         * giscanner/__init__.py:
285         * giscanner/giscannermodule.c:
286         * giscanner/Makefile.am:
287
288         Add initial python bindings for the scanner and 
289         depend on python 2.5.
290
291 2008-03-25  Johan Dahlin  <johan@gnome.org>
292
293         * Makefile.am:
294         * configure.ac:
295         * giscanner/Makefile.am:
296         * giscanner/sourcescanner.c:
297         * giscanner/sourcescanner.h:
298         * tools/Makefile.am:
299         * tools/grealpath.h:
300         * tools/sourcescanner.c:
301         * tools/sourcescanner.h:
302
303         Move the scanner to a separate library.
304         
305 2008-03-23  Johan Dahlin  <johan@gnome.org>
306
307         * tools/Makefile.am:
308         * tools/scanner.c:
309         * tools/scanner.h:
310         * tools/scannerlexer.l:
311         * tools/scannerparser.y:
312         * tools/sourcescanner.c:
313         * tools/sourcescanner.h:
314         Split out the source scanner from the generator.
315         Rename the symbols used in the scanner to use the gi_ prefix.
316         This should make it possible to use the raw C parser from
317         other programs.
318
319 2008-03-23  Johan Dahlin  <johan@gnome.org>
320
321         * tests/parser/Makefile.am (utility.gidl): 
322         * tests/parser/utility-expected.gidl: 
323         Pass in the gobject.gidl since we're defining a GObject.
324
325 2008-03-12  Johan Dahlin  <johan@gnome.org>
326
327         * relaxng/relaxng.rng:
328         Add a releaxng in relaxng we can use to validate the relaxngs
329         schemas
330
331 2008-03-12  Jürg Billeter  <j@bitron.ch>
332
333         * tools/scanner.c: (g_igenerator_new):
334         * tools/scannerparser.y:
335         Fix compiler warnings.
336
337 2008-03-12  Jürg Billeter  <j@bitron.ch>
338
339         * tools/scanner.c:
340         * tools/scanner.h:
341         * tools/scannerparser.y:
342         Start fixing memory management in g-idl-scanner.
343
344 2008-03-12  Rob Taylor  <rob.taylor@codethink.co.uk>
345
346         * tools/gidlcompilercontext.c: (write_compiled):
347         Fix critical warning when no shlib passed to g-idl-compiler.
348
349 2008-03-12  Johan Dahlin  <johan@gnome.org>
350
351         * tests/parser/utility-expected.gidl:
352         * tests/parser/utility.h:
353         Add a get_type-function, so the scanner actually
354         parses it as an object.
355         
356 2008-03-12  Johan Dahlin  <johan@gnome.org>
357
358         * tools/gidlwriter.c (function_generate): Add missing trailing quote.
359         Bad Philip!
360
361         * tests/parser/Foo-expected.gidl:
362         * tests/parser/Makefile.am:
363         * tests/parser/foo-object.h:
364         * tests/parser/foo.c:
365         * tests/parser/utility-expected.gidl:
366         * tests/parser/utility.c:
367         * tests/parser/utility.h:
368
369         Add a new gidl test. 'utility.gidl', which is used to be able
370         to test external type references. Add a reference to UtilityObject*
371         in the idl file.
372
373 2008-03-11  Johan Dahlin  <johan@gnome.org>
374
375         * tools/compiler.c:
376         * tools/generate.c:
377         Remove most global variables
378
379 2008-03-11  Philip Van Hoof  <me@pvanhoof.be>
380  
381         * tools/scannerlexer.l:
382         * tools/scanner.c:
383         * tests/parser/Foo-expected.gidl:
384         * tests/parser/foo.c:
385         * tests/parser/Makefile.am:
386         * tests/parser/foo-object.h:
387  
388         Added a few extra tests. Which resulted in finding a few
389         bugs. Which resulted in me fixing those bugs
390
391 2008-03-11  Rob Taylor  <rob.taylor@codethink.co.uk>
392
393         * tools/gidlcompilercontext.c: (g_idl_compiler_write_dir_entry),
394         (g_idl_compiler_write_xref_entry), (g_idl_compiler_add_xref):
395         Add some comments for strings into generated output for
396         easier debugging.
397
398 2008-03-11  Rob Taylor  <rob.taylor@codethink.co.uk>
399
400         * tools/gidlcompilercontext.c: (write_compiled):
401         Write out the shlibs variable before writing out the strings
402         length. Fixes compiler warning when using '-l' flag with
403         g-idl-compiler
404
405 2008-03-11  Johan Dahlin  <johan@gnome.org>
406
407         * tests/parser/Foo-expected.gidl:
408         * tests/parser/foo-object.h:
409         * tools/scanner.c:
410         * tools/scanner.h:
411         * tools/scannerlexer.l:
412         Add support for parsing return arguments. Add support for
413         caller-owns return types.
414         Patch by Philip Van Hoof.
415         
416         * tools/scannerparser.y:
417         Remove parsing of the @deprecated syntax used in headers.
418         We will support gtk-doc deprecation in the future instead.
419
420 2008-03-11  Johan Dahlin  <johan@gnome.org>
421
422         * tools/compiler.c (main): Coding style fixes
423
424 2008-03-10  Johan Dahlin  <johan@gnome.org>
425
426         * configure.ac:
427         Add GCOV_LIBS to GILIBS
428
429 2008-03-10  Johan Dahlin  <johan@gnome.org>
430
431         * tests/parser/Foo-expected.gidl:
432         * tests/parser/foo.c:
433         Rename null-ok to direction=out
434
435 2008-03-10  Philip Van Hoof  <me@pvanhoof.be>
436
437         reviewed and extensively tested by Johan
438
439         * tests/parser/Foo-expected.gidl:
440         * tests/parser/foo-object.h:
441         * tests/parser/foo.c:
442         * tools/gidlnode.c:
443         * tools/gidlnode.h:
444         * tools/gidlwriter.c:
445         * tools/scanner.c:
446         * tools/scanner.h:
447         * tools/scannerlexer.l:
448         * tools/scannerparser.y:
449
450         Add support for scanning for gtk-doc comments inside
451         C source files. Add tests
452
453 2008-03-10  Johan Dahlin  <johan@gnome.org>
454
455         * tests/parser/Makefile.am:
456         * tests/parser/foo.c:
457         * tools/scanner.c:
458         * tools/scanner.h:
459         * tools/scannerparser.y:
460         Add an api to lex filenames.
461         Lex all source .c files passed in on the command line.
462         Scan sources in a test and a couple of private structures
463         which should not be included in the generated gidl
464
465 2008-03-10  Johan Dahlin  <johan@gnome.org>
466
467         * tests/invoke/Makefile.am: Make the generated metadata 
468         depend on the g-idl-compiler
469
470 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
471
472         * tools/gidlmodule.c
473         * tools/gidlmodule.h
474         * tools/gidlnode.c
475         * tools/gidlnode.h
476         Remove the old g-idl-compiler code.
477
478
479 2008-02-22  Mark Doffman  <mark.doffman@codethink.co.uk>
480
481         * tools/quote-file.sh
482         * tools/compiler.c
483         * tools/generate.c
484         Move to using the 'C' struct compiler code.
485
486 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
487
488         * girepository/ginfo.c
489         * tools/generate.c
490         Change the way that external references with no namespace
491         are dealt with. External references with no namespace
492         are placed into the XML as-if they are a local reference.
493         This is temporary, but helps with roundtrip tests.
494
495 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
496
497         * girepository/ginfo.c
498         Add the ability to get the value of a constant of
499         type TYPE_TAG_SYMBOL. In the case of a symbol the value
500         is provided as a string.
501
502         This would deal properly with:
503         typedef char* random;
504         const random = "A string";
505
506 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
507
508         * girepository/ginfo.c
509         * girepository/girepository.h
510         * tools/generate.c
511         Add a function to check if an enum is registered or not.
512         Previously anything testing this relied on the g-type
513         string offset having a value of 0.
514
515         * girepository/gmetadata.c
516         * girepository/gmetadata.h
517         * tools/generate.c
518         Remove unneccesary or erroneous checks. There were two
519         metadata validation checks which made sure that the blob
520         sizes were the same as some magic numbers compiled into the code.
521         This is wrong as it breaks any forwards compatibility that may
522         be possible.
523
524         Checks were also present that made sure that unregistered type
525         blobs had a value of 0 in the g-type offset field. This is
526         unneccessary. If a type blob is unregistered then any value
527         in its g-type field is simply invalid.
528
529 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
530
531         * girepository/ginfo.c
532         * girepository/gmetadata.c
533         * girepository/gmetadata.h
534
535           Change the metadata format to have a standard header
536           for all the type blobs. Merge the SimpleTypeBlob
537           and InterfaceTypeBlob into a union. A union of these
538           two blobs existed previously but was not explicit
539           in the metadata format.
540
541 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
542
543         * tools/gidlcompilercontext.c
544         * tools/gidlcompilercontext.h
545         * tools/gidlcompilerentrynode.c
546         * tools/gidlcompilerentrynode.h
547         * tools/gidlcompilertypenode.c
548         * tools/gidlcompilertypenode.h
549
550         Add code to compile a tree of GIdlNodes to
551         a 'C' struct representing the metadata.
552         This is to aid cross-compiling. Previously
553         the g-idl-compiler created a binary blob with
554         data written in the byte order and alignment
555         of the tool rather than the intended target.
556
557         Cleaned up and improved by Johan and Robert :-)
558
559 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
560
561         * girepository/ginvoke.c
562         * girepository/girepository.h
563         * girepository/gmetadata.c
564         * girepository/gmetadata.h
565         * tools/generate.c
566         * tools/gidlparser.c
567         Modify TYPE_TAG_INTERFACE to TYPE_TAG_SYMBOL
568         to avoid confusion with the interface blob.
569
570         * tools/generate.c
571         * tools/gidlparser.c
572         Remove magic numbers and replace with type-tag
573         enumeration symbols.
574
575         * girepository/gmetadata.c
576         Add validate declaration.
577
578 2008-03-10  Jürg Billeter  <j@bitron.ch>
579
580         * tools/gidlparser.c: (parse_type_internal):
581         * tools/scannerlexer.l:
582         * tools/scannerparser.y:
583         Support C99 _Bool type in scanner.
584
585 2008-03-10  Jürg Billeter  <j@bitron.ch>
586
587         * tests/parser/Foo-expected.gidl:
588         * tests/parser/foo-object.h:
589         * tests/parser/foo.c: (foo_enum_method):
590         * tools/scanner.c: (g_igenerator_process_function_symbol):
591         Don't skip functions that are defined in the namespace of a type
592         that doesn't support methods, as for example enums.
593
594 2008-03-10  Johan Dahlin  <johan@gnome.org>
595
596         * gidl.dtd: Remove, we're using relaxng for now
597
598         * tests/parser/Foo-expected.gidl:
599         * tests/parser/foo-object.h:
600         * tests/parser/foo.c:
601         Rename the enum/flags get_type functions to include the whole type.
602
603 2008-03-08  Marc-Andre Lureau  <marcandre.lureau@gmail.com>
604
605         * tools/gidlwriter.c (enum_generate): added "type-name",
606         "get-type" and "deprecated" missing arguments.
607         * tests/parser/Foo-expected.gidl:
608         * tests/parser/foo-object.h: test enum type, and no type.
609
610 2008-03-06  Johan Dahlin  <jdahlin@async.com.br>
611
612         * configure.ac:
613         Consistent checks, add missing 'test'
614
615 2008-03-05  Havoc Pennington  <hp@redhat.com>
616
617         * configure.ac: Take advantage of a libffi.pc if one exists, as it
618         does on Fedora 8. Make libffi a hard requirement, since it was in
619         practice anyway (was not really conditional in the code or
620         makefile, only in configure).
621
622 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
623
624         reviewed by: Rob Taylor  <rob.taylor@codethink.co.uk>
625         reviewed by: Johan Dahlin  <johan@gnome.org>
626
627         * tests/Makefile.am:
628         * tests/roundtrips.sh:
629         Modify the roundtrips test so that they do not use the
630         --raw option of the gidl compiler but instead compile a
631         shared library to use with g_module.
632
633         * tests/invoke/Makefile.am:
634         * tests/invoke/invoke.c:
635         Modify the invoke tests to build a shared library rather
636         than use the --raw option.
637
638         * tests/invoke/invoke-namespace-find.sh: Removed:
639         Noone knows why this was here, so removed.
640
641 2008-02-19  Rob Taylor  <rob.taylor@codethink.co.uk>
642
643         * tools/scanner.c: (g_igenerator_process_function_symbol):
644         Move g_idl_node_can_have_member test later, as it broke spotting
645         get_type's for nodes that can't have members.
646
647 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
648
649         * tools/gidlnode.h:
650         * tools/gidlnode.c: (g_idl_node_can_have_member):
651         Add g_idl_node_can_have_member.
652
653         * tools/scanner.c: (g_igenerator_process_function_symbol):
654         Use g_idl_node_can_have_member to test if we should add a function
655         as a member of the type node.
656
657 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
658
659         * gidl/GLib.gidl: Renamed to gidl/gobject-2.0.gidl:
660         * gidl/Makefile.am:
661         * tests/parser/Makefile.am:
662         Rename GLib.gidl to gobject-2.0.gidl and install in /usr/share/gidl.
663
664 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
665
666         * tools/scanner.c: (main):
667         Ignore -pthread when passed to g-idl-scanner.
668
669 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
670
671         * tools/grealpath.h: Added:
672         * tools/scanner.c: (main):
673         * tools/scannerlexer.l:
674         * tools/Makefile.am:
675         Always use absolute paths with symbolic links resolved when
676         comparing filenames.
677
678 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
679
680         * gobject-introspection.pc.in:
681         Provide variables for g-idl-parser, scanner and compiler in the
682         pkgconfig file.
683
684 2008-02-13  Rob Taylor  <rob.taylor@codethink.co.uk>
685
686         * gcov.mak:
687         * girepository/Makefile.am:
688         * tools/Makefile.am:
689         Rename GCOV_SOURCES to GCOVSOURCES to top automake complaining.
690
691 2008-02-10  Johan Dahlin  <johan@gnome.org>
692
693         * tests/parser/Foo-expected.gidl:
694         * tests/parser/foo-object.h:
695         * tests/parser/foo.c: (foo_boxed_copy), (foo_boxed_free),
696         (foo_boxed_get_type), (foo_boxed_new), (foo_boxed_method):
697         Add boxed test.
698
699 2008-02-10  Johan Dahlin  <johan@gnome.org>
700
701         * tests/parser/Foo-expected.gidl:
702         * tests/parser/foo-object.h:
703         * tests/parser/foo.c: (foo_enum_get_type), (foo_flags_get_type):
704         Add enum and flags test.
705
706 2008-02-10  Johan Dahlin  <johan@gnome.org>
707
708         * Makefile.am:
709         * configure.ac:
710         * girepository/Makefile.am:
711         Make 'make distcheck' work again.
712
713 2008-02-10  Johan Dahlin  <johan@gnome.org>
714
715         * m4/Makefile.am (EXTRA_DIST): its called as-compiler-flag.m4,
716         not as-compiler.m4.
717
718         * tests/parser/Makefile.am: Only create Foo.gidl when running make
719         check, eg exclude it from BUILT_SOURCES.
720
721 2008-02-08  Rob Taylor  <rob.taylor@codethink.co.uk>
722
723         * Makefile.am:
724         * configure.ac:
725         * gcov.mak: Added:
726         * girepository/Makefile.am:
727         * m4/Makefile.am: Added:
728         * m4/as-compiler-flag.m4: Added:
729         * m4/gcov.m4: Added:
730         * tools/Makefile.am:
731         Add ability to generate a coverage report.
732         Adds configure option --enable-gcov and make rule 'check-coverage'.
733
734 2008-02-08  Rob Taylor  <rob.taylor@codethink.co.uk>
735
736         * Makefile.am:
737         * configure.ac:
738         * gidl/Makefile.am: Added:
739         * girepository/Makefile.am: Added:
740         * src/Makefile.am: Renamed to tools/Makefile.am:
741         * src/compiler.c: Renamed to tools/compiler.c:
742         * src/g-idl-offsets.pl: Renamed to tools/g-idl-offsets.pl:
743         * src/generate.c: Renamed to tools/generate.c:
744         * src/gidlmodule.c: Renamed to tools/gidlmodule.c:
745         * src/gidlmodule.h: Renamed to tools/gidlmodule.h:
746         * src/gidlnode.c: Renamed to tools/gidlnode.c:
747         * src/gidlnode.h: Renamed to tools/gidlnode.h:
748         * src/gidlparser.c: Renamed to tools/gidlparser.c:
749         * src/gidlparser.h: Renamed to tools/gidlparser.h:
750         * src/gidlwriter.c: Renamed to tools/gidlwriter.c:
751         * src/gidlwriter.h: Renamed to tools/gidlwriter.h:
752         * src/ginfo.c: Renamed to girepository/ginfo.c:
753         * src/ginvoke.c: Renamed to girepository/ginvoke.c:
754         * src/girepository.c: Renamed to girepository/girepository.c:
755         * src/girepository.h: Renamed to girepository/girepository.h:
756         * src/gmetadata.c: Renamed to girepository/gmetadata.c:
757         * src/gmetadata.h: Renamed to girepository/gmetadata.h:
758         * src/scanner.c: Renamed to tools/scanner.c:
759         * src/scanner.h: Renamed to tools/scanner.h:
760         * src/scannerlexer.l: Renamed to tools/scannerlexer.l:
761         * src/scannerparser.y: Renamed to tools/scannerparser.y:
762         * tests/invoke/Makefile.am:
763         Split src/ into girepository/ and tools/
764
765         * Makefile.am:
766         * configure.ac:
767         * girepository/Makefile.am:
768         * tests/Makefile.am:
769         * tests/invoke/Makefile.am:
770         * tests/parser/Makefile.am:
771         * tests/roundtrips.sh:
772         * tools/Makefile.am:
773         Make distcheck work.
774
775 2008-02-04  Rob Taylor  <rob.taylor@codethink.co.uk>
776
777         * tests/invoke/invoke.c: (main):
778         * tests/invoke/testfns.c: (test6), (test7):
779         * tests/invoke/testfns.xml:
780         Add tests for invokation with a GList argument.
781         Also tests caller-owns return values.
782
783 2008-02-04  Rob Taylor  <robtaylor@floopily.org>
784
785         * src/ginfo.c:
786         Add some documentation for GICallableInfo
787
788 2008-02-01  Mark Doffman  <mark.doffman@codethink.co.uk>
789
790         * gidl.dtd:
791         Correct syntax errors in the DTD file.
792         * relaxng/api.xml:
793         * relaxng/c-types.xml:
794         * relaxng/g-types.xml:
795         * relaxng/util.xml:
796         Add a RelaxNG specification for the GObject Introspection XML data.
797         The Specification has validated all of the test files.
798
799 2008-01-25  Rob Taylor  <robtaylor@floopily.org>
800
801         * tests/roundtrips.sh:
802         * tests/struct.test:
803         Add roundtrip tests for structs.
804
805 2008-01-11  Johan Dahlin  <johan@gnome.org>
806
807         * src/scanner.c (g_igenerator_process_function_symbol):
808         Refactor out g_idle_node_add_member.
809         (create_node_from_gtype, create_node_from_ctype):
810         Use case instead of if...else
811         (get_type_from_type_id):
812         Rename to create_node_from_gtype
813         (get_type_from_ctype):
814         Rename to create_node_from_ctype
815
816         Rename ginode -> node, gitype -> type, gifunc -> func.
817
818         * src/gidlnode.c (g_idl_node_add_member, g_idl_node_cmp):
819         Two new functions, refactor out of scanner.c
820
821         * src/scanner.c: (g_igenerator_process_function_symbol):
822         * src/scannerlexer.l:
823         Do not save the content of the deprecated variable, only
824         if it's set or not.
825
826 2008-01-11  Johan Dahlin  <johan@gnome.org>
827
828         * tests/parser/foo-object.h: Add a couple of comment parser tests.
829
830 2008-01-11  Jürg Billeter  <j@bitron.ch>
831
832         * src/scannerlexer.l:
833         Fix GTK-Doc parsing.
834
835 2008-01-11  Jürg Billeter  <j@bitron.ch>
836
837         * src/scannerlexer.l:
838         Fix GTK-Doc parsing.
839
840 2008-01-11  Jürg Billeter  <j@bitron.ch>
841
842         * src/scanner.c: (lookup_symbol):
843         Return unresolved name if we find unknown symbol.
844
845 2008-01-11  Jürg Billeter  <j@bitron.ch>
846
847         * src/scanner.c: (g_igenerator_generate):
848         Initialize GObject to fix scanning interface properties.
849
850         * tests/parser/Foo-expected.gidl:
851         * tests/parser/foo-object.h:
852         * tests/parser/foo.c: (foo_interface_get_type):
853         Test interfaces with GObject prerequisite.
854
855         * tests/parser/Makefile.am:
856         Set G_DEBUG=fatal_warnings to abort test on warnings and criticals.
857
858 2007-12-27  Johan Dahlin  <johan@gnome.org>
859
860         * src/scannerlexer.l:
861         Parse gtk-doc comments.
862
863         * src/gidlwriter.c: (function_generate):
864         Reorganize, avoid duplication and add support for
865         writing deprecated functions.
866
867         * src/scannerparser.y:
868         * src/scanner.h:
869         Add new structure CDirective and functions to create/free them.
870
871         * src/scanner.c: (g_igenerator_process_function_symbol),
872         (g_igenerator_process_unregistered_struct_typedef),
873         (g_igenerator_process_struct_typedef),
874         (g_igenerator_process_union_typedef),
875         (g_igenerator_process_enum_typedef),
876         (g_igenerator_process_function_typedef), (g_igenerator_add_symbol),
877         (g_igenerator_start_preprocessor):
878         Parse @deprecated directive for functions.
879         Remove some more C99isms.
880         Send in -C to cpp to avoid stripping comments.
881
882         * tests/parser/foo-object.h:
883         * tests/parser/Foo-expected.gidl:
884         Add deprecated directive
885
886 2007-12-27  Johan Dahlin  <johan@gnome.org>
887
888         * src/scannerlexer.l (intsuffix): Add emacs mode line and
889         escape ' and " so it looks more like C.
890
891         * src/scanner.c:
892         Unlink temporary file used.
893
894 2007-12-27  Johan Dahlin  <johan@gnome.org>
895
896         * src/scanner.c: (g_igenerator_new), (g_igenerator_free),
897         (g_igenerator_start_preprocessor), (main):
898         * src/scanner.h:
899         * src/scannerparser.y:
900         Plug a couple of simple memory leaks.
901
902 2007-12-27  Johan Dahlin  <johan@gnome.org>
903
904         * src/scanner.c: (g_igenerator_parse_macros),
905         (g_igenerator_start_preprocessor), (g_igenerator_set_verbose),
906         (main):
907         * src/scanner.h:
908         * src/scannerparser.y:
909         * tests/parser/Makefile.am:
910
911         Improve error reporting, return when the preprocessor fails.
912         Add a verbose parameter, to aid debugging.
913         Revert to using a temporary file to communicate between the
914         preprocessor and the parser, because we need to wait for
915         the exit code from the pre-processor before starting to parse.
916
917 2007-12-16  Johan Dahlin  <jdahlin@async.com.br>
918
919         * src/Makefile.am: Rename clexer.l to scannerlexer.l and
920         cparser.y to scannerparser.y
921
922 2007-12-11  Johan Dahlin  <johan@gnome.org>
923
924         * src/clexer.l:
925         * src/cparser.y:
926         * src/scanner.c: (g_igenerator_new):
927         * src/scanner.h:
928         Get rid of the global the_generator variable.
929
930 2007-12-10  Johan Dahlin  <johan@gnome.org>
931
932         * src/scanner.c (main): Add an output option,
933         add checks for required parameters
934
935         * src/Makefile.am:
936         set BUILD_SOURCES and CLEANFILES properly
937
938         * src/gidlwriter.c: (g_writer_write_inline), (g_writer_write),
939         (g_writer_write_indent), (g_writer_write_unindent),
940         (field_generate), (value_generate), (constant_generate),
941         (property_generate), (function_generate), (vfunc_generate),
942         (signal_generate), (interface_generate), (struct_generate),
943         (union_generate), (boxed_generate), (enum_generate),
944         (node_generate), (g_writer_write_module), (g_idl_writer_save_file):
945         * src/gidlwriter.h:
946         * src/scanner.c: (g_igenerator_generate):
947         * src/scanner.h:
948         * src/scannerwriter.c:
949
950         Refactor scannerwriter to only be tied to a GIdlModule and move
951         it (again!) to gidlwriter.c. Change the writer function to take
952         a filename.
953
954 2007-12-10  Johan Dahlin  <johan@gnome.org>
955
956         * src/Makefile.am:
957         * src/scanner.c: (g_igenerator_generate):
958         * src/scanner.h:
959         * src/scannerwriter.c: (g_igenerator_write_inline),
960         (g_igenerator_write), (g_igenerator_write_indent),
961         (g_igenerator_write_unindent), (field_generate), (value_generate),
962         (constant_generate), (property_generate), (function_generate),
963         (vfunc_generate), (signal_generate), (interface_generate),
964         (struct_generate), (union_generate), (boxed_generate),
965         (enum_generate), (node_generate), (module_generate),
966         (g_scanner_write_file):
967
968         Move the scanner gidl writing to a separate source file.
969
970 2007-12-10  Johan Dahlin  <johan@gnome.org>
971
972         * src/cparser.y:
973         * src/scanner.c:
974         * src/scanner.h:
975         Move over all CType construction functions.
976
977         * tests/parser/Makefile.am:
978         Be verbose when printing parsing tests results.
979
980 2007-12-10  Johan Dahlin  <johan@gnome.org>
981
982         * src/scanner.c (g_igenerator_start_preprocessor): Refactor
983         preprocessor handling to here. Start cpp insteado of cc -E,
984         always include -U__GNUC__, since it's specific to the preprocessor
985         we use.
986
987         * tests/parser/Makefile.am (check-local): Silent diff and skip
988         -U__GNUC__ which is always defined now
989
990 2007-12-10  Johan Dahlin,,,  <jdahlin@plasttroll>
991
992         reviewed by: <delete if not using a buddy>
993
994         * src/scanner.c: (g_igenerator_start_preprocessor), (main):
995         * tests/parser/Makefile.am:
996
997 2007-12-09  Johan Dahlin  <johan@gnome.org>
998
999         * src/scanner.c:
1000         Use GOption for command line options.
1001         (g_igenerator_new, main): Simplify constructor and they way
1002         parameters are passed into it.
1003
1004         * src/cparser.y:
1005         * src/Makefile.am:
1006         * src/clexer.l:
1007         * src/cparser.y:
1008         * src/gen-introspect.c:
1009         * src/gen-introspect.h:
1010         * src/scanner.c:
1011         Rename gen-introspect.[ch] to scanner.[ch]
1012
1013 2007-12-09  Johan Dahlin  <johan@gnome.org>
1014
1015         * TODO: Update
1016
1017         * src/Makefile.am: Rename gen-introspect to g-idl-scanner,
1018         don't make the repository library and the other utilites link against
1019         gthread-2.0
1020
1021         * src/gen-introspect.c: (g_igenerator_create_object),
1022         (g_igenerator_create_interface), (g_igenerator_create_boxed),
1023         (g_igenerator_create_enum), (g_igenerator_create_flags),
1024         (g_igenerator_process_module_symbol),
1025         (g_igenerator_process_module), (g_igenerator_generate), (main):
1026         * src/gen-introspect.h:
1027         Refactor g_igenerator_process_types into smaller pieces.
1028
1029         * tests/parser/Makefile.am:
1030         Depend on the gen-introspect binary
1031
1032 2007-12-09  Johan Dahlin  <johan@gnome.org>
1033
1034         * src/gen-introspect.c (g_igenerator_process_types):
1035         Break into smaller pieces, one for each generated node type.
1036
1037 2007-12-08  Johan Dahlin  <johan@gnome.org>
1038
1039         * src/gen-introspect.c: (g_igenerator_process_types),
1040         (g_igenerator_add_module):
1041         * tests/parser/Foo-expected.gidl:
1042         * tests/parser/foo-object.h:
1043         * tests/parser/foo.c: (foo_subobject_class_init),
1044         (foo_subobject_init):
1045
1046         Add a subobject test and make sure to register defined classes
1047         in the lookup symbol hash table.
1048
1049 2007-12-08  Johan Dahlin  <johan@gnome.org>
1050
1051         * gidl/GLib.gidl:
1052         * src/Makefile.am:
1053         * src/gen-introspect.c: (g_igenerator_new), (lookup_symbol),
1054         (g_igenerator_process_types), (g_igenerator_add_module),
1055         (g_igenerator_add_include_idl), (main):
1056         * src/gen-introspect.h:
1057         * tests/parser/Makefile.am:
1058         * tests/parser/Foo-expected.gidl:
1059
1060         Change the gen-introspect to generate namespaced module names,
1061         such as GLib.Object instead of GObject.
1062         Add a GLib.gidl which introduces GLib.Object and GLib.InitiallyUnowned,
1063         add a --include-idl parameter to gen-introspect,
1064         and update the parser test.
1065
1066 2007-12-08  Johan Dahlin  <johan@gnome.org>
1067
1068         * src/gen-introspect.c:
1069         Move main to the end of the file and attempt to make it valid
1070         ansi c.
1071
1072         * tests/parser/Makefile.am (BUILT_SOURCES): Remove .repo here,
1073         we're not quite ready to generate metadata yet.
1074
1075         * tests/parser/:
1076         * configure.ac:
1077
1078         Add a simple gen-introspect parser test
1079
1080 2007-12-06  Gustavo J. A. M. Carneiro  <gjc@gnome.org>
1081
1082         reviewed by: Johan Dahlin  <johan@gnome.org>
1083
1084         * configure.ac:
1085         * gobject-introspection.pc.in:
1086         * src/Makefile.am:
1087         * src/compiler.c: (format_output), (write_out_metadata), (main):
1088         * src/gen-introspect.c: (main):
1089         * src/gen-introspect.h:
1090         * src/generate.c: (write_callable_info), (write_repository),
1091         (load_metadata), (main):
1092         * src/gidlmodule.c: (g_idl_module_new),
1093         (g_idl_module_build_metadata):
1094         * src/gidlmodule.h:
1095         * src/gidlparser.c: (start_element_handler):
1096         * src/ginfo.c: (g_info_new), (g_info_from_entry),
1097         (g_base_info_get_name), (g_base_info_get_namespace),
1098         (g_base_info_is_deprecated), (g_base_info_get_annotation),
1099         (g_base_info_get_metadata), (g_function_info_get_symbol),
1100         (g_function_info_get_flags), (g_function_info_get_property),
1101         (g_function_info_get_vfunc), (signature_offset), (g_type_info_new),
1102         (g_callable_info_may_return_null),
1103         (g_callable_info_get_caller_owns), (g_callable_info_get_n_args),
1104         (g_callable_info_get_arg), (g_arg_info_get_direction),
1105         (g_arg_info_is_return_value), (g_arg_info_is_dipper),
1106         (g_arg_info_is_optional), (g_arg_info_may_be_null),
1107         (g_arg_info_get_ownership_transfer), (g_type_info_is_pointer),
1108         (g_type_info_get_tag), (g_type_info_get_param_type),
1109         (g_type_info_get_interface), (g_type_info_get_array_length),
1110         (g_type_info_is_zero_terminated),
1111         (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
1112         (g_error_domain_info_get_quark), (g_error_domain_info_get_codes),
1113         (g_value_info_get_value), (g_field_info_get_flags),
1114         (g_field_info_get_size), (g_field_info_get_offset),
1115         (g_registered_type_info_get_type_name),
1116         (g_registered_type_info_get_type_init),
1117         (g_struct_info_get_n_fields), (g_struct_info_get_field),
1118         (g_struct_info_get_n_methods), (g_struct_info_get_method),
1119         (find_method), (g_struct_info_find_method),
1120         (g_enum_info_get_n_values), (g_enum_info_get_value),
1121         (g_object_info_get_parent), (g_object_info_get_type_name),
1122         (g_object_info_get_type_init), (g_object_info_get_n_interfaces),
1123         (g_object_info_get_interface), (g_object_info_get_n_fields),
1124         (g_object_info_get_field), (g_object_info_get_n_properties),
1125         (g_object_info_get_property), (g_object_info_get_n_methods),
1126         (g_object_info_get_method), (g_object_info_find_method),
1127         (g_object_info_get_n_signals), (g_object_info_get_signal),
1128         (g_object_info_get_n_vfuncs), (g_object_info_get_vfunc),
1129         (g_object_info_get_n_constants), (g_object_info_get_constant),
1130         (g_interface_info_get_n_prerequisites),
1131         (g_interface_info_get_prerequisite),
1132         (g_interface_info_get_n_properties),
1133         (g_interface_info_get_property), (g_interface_info_get_n_methods),
1134         (g_interface_info_get_method), (g_interface_info_find_method),
1135         (g_interface_info_get_n_signals), (g_interface_info_get_signal),
1136         (g_interface_info_get_n_vfuncs), (g_interface_info_get_vfunc),
1137         (g_interface_info_get_n_constants),
1138         (g_interface_info_get_constant), (g_property_info_get_flags),
1139         (g_signal_info_get_flags), (g_signal_info_get_class_closure),
1140         (g_signal_info_true_stops_emit), (g_vfunc_info_get_flags),
1141         (g_vfunc_info_get_offset), (g_vfunc_info_get_signal),
1142         (g_constant_info_get_value), (g_union_info_get_n_fields),
1143         (g_union_info_get_field), (g_union_info_get_n_methods),
1144         (g_union_info_get_method), (g_union_info_is_discriminated),
1145         (g_union_info_get_discriminator_offset),
1146         (g_union_info_get_discriminator):
1147         * src/ginvoke.c: (g_function_info_invoke):
1148         * src/girepository.c: (g_irepository_register),
1149         (g_irepository_unregister), (g_irepository_get_default),
1150         (count_interfaces), (g_irepository_get_n_infos), (find_interface),
1151         (g_irepository_get_info), (g_irepository_find_by_name),
1152         (g_irepository_get_shared_library),
1153         (g_irepository_build_search_path), (g_irepository_register_file),
1154         (g_irepository_error_quark):
1155         * src/girepository.h:
1156         * src/gmetadata.c: (g_metadata_get_dir_entry),
1157         (g_metadata_check_sanity), (validate_header),
1158         (validate_array_type_blob), (validate_iface_type_blob),
1159         (validate_param_type_blob), (validate_error_type_blob),
1160         (validate_type_blob), (validate_arg_blob),
1161         (validate_signature_blob), (validate_function_blob),
1162         (validate_callback_blob), (validate_constant_blob),
1163         (validate_value_blob), (validate_field_blob),
1164         (validate_property_blob), (validate_signal_blob),
1165         (validate_vfunc_blob), (validate_struct_blob),
1166         (validate_enum_blob), (validate_object_blob),
1167         (validate_interface_blob), (validate_errordomain_blob),
1168         (validate_union_blob), (validate_blob), (validate_directory),
1169         (validate_annotations), (g_metadata_validate), (_g_metadata_init),
1170         (g_metadata_new_from_memory), (g_metadata_new_from_const_memory),
1171         (g_metadata_new_from_mapped_file), (g_metadata_free),
1172         (g_metadata_set_module), (g_metadata_get_namespace):
1173         * src/gmetadata.h:
1174         * tests/Makefile.am:
1175         * tests/invoke/Makefile.am:
1176         * tests/invoke/invoke-namespace-find.sh:
1177         * tests/invoke/invoke.c: (main):
1178
1179         Add a namespace/shared library mapping. fixes #313268.
1180
1181 2007-12-03  Johan Dahlin  <johan@gnome.org>
1182
1183         * src/gidlparser.c (parse_type_internal): Disable char/gchar and
1184         guchar for now.
1185
1186 2007-11-30  Jürg Billeter  <j@bitron.ch>
1187
1188         * configure.ac:
1189         * src/Makefile.am:
1190         * src/clexer.l:
1191         * src/cparser.y:
1192         * src/gen-introspect.c: (g_idl_node_cmp), (g_igenerator_new),
1193         (g_igenerator_write_inline), (g_igenerator_write),
1194         (g_igenerator_write_indent), (g_igenerator_write_unindent),
1195         (field_generate), (value_generate), (constant_generate),
1196         (property_generate), (function_generate), (vfunc_generate),
1197         (signal_generate), (interface_generate), (struct_generate),
1198         (union_generate), (boxed_generate), (enum_generate),
1199         (node_generate), (module_generate), (get_type_from_type_id),
1200         (str_replace), (g_igenerator_process_properties),
1201         (g_igenerator_process_signals), (g_igenerator_process_types),
1202         (get_type_from_ctype), (g_igenerator_process_function_symbol),
1203         (g_igenerator_process_unregistered_struct_typedef),
1204         (g_igenerator_process_struct_typedef),
1205         (g_igenerator_process_union_typedef),
1206         (g_igenerator_process_enum_typedef),
1207         (g_igenerator_process_function_typedef),
1208         (g_igenerator_process_constant), (g_igenerator_process_symbols),
1209         (g_igenerator_add_symbol), (g_igenerator_is_typedef),
1210         (g_igenerator_generate), (main), (csymbol_new),
1211         (csymbol_get_const_boolean), (ctype_new), (ctype_copy),
1212         (cbasic_type_new), (ctypedef_new), (cstruct_new), (cunion_new),
1213         (cenum_new), (cpointer_new), (carray_new), (cfunction_new),
1214         (eat_hspace), (eat_line), (read_identifier),
1215         (g_igenerator_parse_macros):
1216         * src/gen-introspect.h:
1217
1218         Import gen-introspect to generate introspection information by
1219         parsing C headers.
1220
1221 2007-11-30  Jürg Billeter  <j@bitron.ch>
1222
1223         * src/gidlnode.c: (g_idl_node_new): support creating callback nodes
1224
1225 2007-11-30  Jürg Billeter  <j@bitron.ch>
1226
1227         * src/gidlparser.c: (end_element_handler): Don't leave requires
1228         state too early.
1229
1230 2007-11-29  Johan Dahlin  <johan@gnome.org>
1231
1232         * src/gidlparser.c (parse_type_internal): Add char,
1233         gchar and guchar to the builtin types.
1234
1235 2007-11-26  Johan Dahlin  <johan@gnome.org>
1236
1237         * src/ginfo.c: (g_object_info_get_type_name),
1238         (g_object_info_get_type_init):
1239         * src/girepository.c: (g_irepository_is_registered):
1240         * src/girepository.h:
1241
1242         Add g_object_info_get_type_name, g_object_info_get_type_init and
1243         g_irepository_is_registered.
1244
1245 2006-08-14  Jürg Billeter  <j@bitron.ch>
1246
1247       * src/gidlparser.c: (end_element_handler): Don't leave
1248         namespace and implements states too early.
1249         Fixes #351264
1250
1251 2007-11-26  Johan Dahlin  <johan@gnome.org>
1252
1253         * src/gmetadata.c (validate_struct_blob):
1254         pass blob_type to validate_function_blob instead of
1255         hard-coding BLOB_TYPE_STRUCT.
1256
1257         Patch by Torsten Schoenfeld, fixes #314190
1258
1259 2006-10-03  Torsten Schoenfeld  <tsch@cvs.gnome.org>
1260
1261         * src/compiler.c, src/generate.c, src/gidlnode.c,
1262         src/gidlparser.c, src/ginfo.c, src/girepository.c,
1263         tests/invoke/invoke.c, test/invoke/testfns.c: Hush compiler
1264         warnings about return values, signedness mismatches, unused
1265         variables, and unhandles enum values in switch statements.
1266
1267         * tests/invoke/Makefile.am: Don't install the invoke test program.
1268         Add -I ../../src to the cflags used for the test functions files.
1269
1270 2005-08-31  Torsten Schoenfeld  <tsch@cvs.gnome.org>
1271
1272         * src/girepository.h: Export g_invoke_error_quark.
1273
1274 2005-08-31  Torsten Schoenfeld  <tsch@cvs.gnome.org>
1275
1276         * src/ginvoke.c: Remove the fallback implementation of
1277         g_function_info_invoke since we now formally depend on libffi.
1278
1279 2005-07-25  Matthias Clasen  <mclasen@redhat.com>
1280
1281         * src/Makefile, tests/Makefile, tests/invoke/Makefile:
1282         Remove these files from cvs, as they are now generated.
1283
1284         * src/gmetadata.c (validate_iface_type_blob): Don't
1285         complain if blob->pointer is not set, since that
1286         happens for enum and flag types.  (#308935, Gustavo
1287         Carneiro)
1288
1289         * Commit an autoconf-conversion patch by
1290         Gustavo Carneiro (#308708)
1291
1292 2005-05-24  Matthias Clasen  <mclasen@redhat.com>
1293
1294         * src/compiler.c (main): Use it here to validate
1295         the generated metadata.
1296
1297         * src/gmetadata.[hc]: Add code to validate a
1298         metadata blob.
1299
1300         * metadata-format.txt: Updates
1301
1302 2005-05-22  Matthias Clasen  <mclasen@redhat.com>
1303
1304         * tests/*: Add struct offsets to field and vfunc
1305         elements.
1306
1307         * src/generate.c (write_vfunc_info): Write offset
1308         information for vfuncs.
1309
1310         * src/gidlnode.c (g_idl_node_build_metadata): Write
1311         the struct offsets into the metadata.
1312
1313         * src/gidlparser.c: Parse the offset attributes of
1314         field and vfunc elements.
1315
1316         * src/gidlnode.h: Add offset members to field and
1317         vfunc nodes.
1318
1319 2005-05-21  Matthias Clasen  <mclasen@redhat.com>
1320
1321         * TODO: Updates.
1322
1323         * gidl.dtd: Updates.
1324
1325         * src/g-idl-offsets.pl: A perl script which reads a .gidl
1326         file, creates, compiles and runs a C file, and folds the
1327         resulting struct offsets back into the .gidl file.
1328
1329 2005-05-20  Matthias Clasen  <mclasen@redhat.com>
1330
1331         * src/gidlparser.c (start_field): Make fields in objects
1332         work.
1333
1334         * src/gidlmodule.c: Include string.h
1335
1336         * TODO: Updates.
1337         :
1338
1339         * metadata-format.txt: Cleanup basic types.
1340         * src/*: Adapt to the changes.
1341         * tests/*: Adapt to the changes.
1342         * examples/gdk-pixbuf.gidl: Adapt to the changes.
1343
1344         * src/gidlnode.c (g_idl_node_get_size): Report the correct
1345         size for enum blobs.
1346         (g_idl_node_get_full_size): Report the correct size for
1347         function blobs.
1348
1349         * src/gidlmodule.c (g_idl_module_build_metadata): Add some
1350         error checking for blob sizes.
1351
1352 2005-05-19  Matthias Clasen  <mclasen@redhat.com>
1353
1354         * src/gidlnode.c (g_idl_node_build_metadata): Correctly handle
1355         interface types for which is_pointer is FALSE, e.g. enums.
1356
1357         * src/gidlnode.c (g_idl_node_get_full_size)
1358         * src/gidlparser.c (parse_type_internal):
1359         * src/generate.c (write_type_info): Support unspecialized
1360         lists, hashtables and errors. Also emit a '*' after these.
1361
1362         * TODO: Updates
1363
1364 2005-05-17  Matthias Clasen  <mclasen@redhat.com>
1365
1366         * TODO: Updates
1367
1368         * metadata-format.txt: Cleanups by Maciej Katafiasz.
1369
1370 2005-05-15  Matthias Clasen  <mclasen@redhat.com>
1371
1372         * src/*.c: Change the directory to be addressed by
1373         1-based indexes, and use an index of zero to mean
1374         'no object'.
1375
1376 2005-05-15  Matthias Clasen  <mclasen@redhat.com>
1377
1378         * tests/roundtrips.sh (SIMPLE_TESTS): Add union.test.
1379
1380         * tests/union.test: Add a union test.
1381
1382         * src/generate.c: Handle unions.
1383
1384         * src/girepository.h:
1385         * src/ginfo.c: Add GIUnionInfo and functions to access it.
1386
1387         * src/gidlnode.c: Handle GIdlNodeUnion nodes.
1388
1389         * src/gidlparser.c (start_union): Parse <union> elements.
1390
1391         * src/gidlnode.h: Add a GIdlNodeUnion.
1392
1393         * gidl.dtd: Add a <union> element.
1394
1395         * src/gmetadata.c (g_metadata_check_sanity): Check
1396         union_blob_size.
1397
1398         * src/gmetadata.h: Add union_blob_size to Header,
1399         add a UnionBlob.
1400
1401         * metadata-format.txt: Add a UnionBlob.
1402
1403 2005-05-13  Matthias Clasen  <mclasen@redhat.com>
1404
1405         * tests/*: Update testcases.
1406
1407         * src/generate.c (write_callable_info): Don't forget to
1408         write transfer and null-ok attributes for return types
1409         and parameters.
1410
1411         * src/girepository.h:
1412         * src/ginfo.c (g_callable_info_may_return_null):
1413         New function to find out if a function may return NULL.
1414
1415         * src/compiler.c (format_output): Make the generated
1416         C code compile.
1417
1418         * README: Point to a recent libffi snapshot.
1419
1420         * tests/invoke/*: Some invoke tests.
1421
1422         * src/Makefile: Add ginvoke.c and the necessary
1423         libffi information.
1424
1425         * src/girepository.h (g_function_info_invoke): Add
1426         a GError argument.
1427
1428         * src/ginvoke.c (g_function_info_invoke): Initial
1429         implementation of invoke functionality based on libffi.
1430
1431         * src/gidlnode.c (g_idl_node_build_metadata): Pass the
1432         strings and types hash tables in the right order when
1433         recursing.
1434         (find_entry_node): Free the name parts.
1435
1436 2005-05-12  Johan Dahlin  <johan@gnome.org>
1437
1438         * src/generate.c: Generate consistent end tags.
1439
1440         * tests/*: Update
1441
1442 2005-05-12  Matthias Clasen  <mclasen@redhat.com>
1443
1444         * TODO: Updates
1445
1446         * src/gidlparser.c (start_function): Actually add
1447         methods to objects.  (Steven Walter)
1448
1449         * src/girepository.h:
1450         * src/ginfo.c: Rename Transfer and Direction to
1451         GITransfer and GIDirection. (Torsten Schoenfeld)
1452
1453         * tests/*: Make tests work with the changes in name
1454         handling.
1455
1456         * src/gidlnode.c (find_entry_node): Parse qualified
1457         names and generate xref nodes for them if needed. Don't
1458         require all modules to be loaded any more.
1459
1460         * src/gidlmodule.c (g_idl_module_build_metadata): Choke
1461         on '.' in names.
1462
1463         * src/ginfo.c (g_object_info_get_parent): Return NULL
1464         if blob->parent is 0. Still need to make sure index
1465         0 is not used.
1466
1467         * src/generate.c: Generate qualified names when
1468         referring to non-local types. Emit transfer attribute
1469         for return types.
1470
1471         * src/compiler.c (format_output): Put the function
1472         attributes where gcc accepts them.
1473
1474 2005-05-11  Matthias Clasen  <mclasen@redhat.com>
1475
1476         * src/compiler.c (main): Add a --verbose cmdline option
1477         and only log messages if it is specified.
1478
1479         * src/gidlnode.h:
1480         * src/gidlnode.c (init_stats, dump_stats): Collect some
1481         statistics on string and type sharing.
1482
1483         * src/gidlmodule.c (g_idl_module_build_metadata): Use
1484         g_message() instead of fprintf().
1485
1486         * src/gidlnode.c (g_idl_node_free): Make this more robust.
1487         (g_idl_node_get_size): Implement for structs.
1488         (g_idl_node_get_full_size): Handle parent being NULL.
1489         (serialize_type): Handle lookup failures more gracefully.
1490
1491 2005-05-10  Matthias Clasen  <mclasen@redhat.com>
1492
1493         * src/gidlnode.c (g_idl_node_get_full_size): Correct the
1494         size calculation for 2-parameter types and for objects.
1495
1496         * src/compiler.c: Add a cmdline option for debug output
1497         and install a log handler to implement it.
1498         * src/gidlnode.c: Add some debug spew.
1499
1500         * TODO: Updates
1501
1502         * src/gidlmodule.c (g_idl_module_build_metadata): Don't
1503         forget to count the module name when calculating the
1504         required size for the metadata.
1505
1506         * src/gidlnode.c:
1507         * src/gidlparser.c: Fix compiler warnings.
1508
1509 2005-05-09  Matthias Clasen  <mclasen@redhat.com>
1510
1511         * src/compiler.c (main): Free the option context.
1512
1513         * gidl.dtd: Clean up handling of names. All elements
1514         have a "name", only the elements corresponding to
1515         actual callable functions (function, method, constructor),
1516         have an additional "symbol" attribute holding the
1517         dlsym()-able function name.
1518
1519         * src/generate.c: Adapt to generate xml matching the
1520         new dtd.
1521
1522         * src/gidlparser.c:
1523         * src/gidlnode.c: Adapt to parse the new dtd.
1524
1525         * tests/*.test: Adjust to the new dtd.
1526
1527         * metadata-format.txt:
1528         * src/gmetadata.h: Remove the short_name field
1529         from the ValueBlob.
1530         * src/gmetadata.c: Shrink size of ValueBlob to 12.
1531         * src/girepository.h:
1532         * src/ginfo.c (g_value_info_get_short_name): Removed
1533
1534 2005-05-09  Matthias Clasen  <mclasen@redhat.com>
1535
1536         * gidl.dtd: Allow constructors for boxed types,
1537         patch by Jonathan Blandford.
1538
1539
1540 2005-05-09  Matthias Clasen  <mclasen@redhat.com>
1541
1542         * --- Initial import ---