Add pyflakes.py and run it in make check. Update the source code to fix
[platform/upstream/gobject-introspection.git] / ChangeLog
1 2008-08-14  Johan Dahlin  <johan@gnome.org>
2
3         * giscanner/girwriter.py:
4         * giscanner/glibast.py:
5         * giscanner/glibtransformer.py:
6         * giscanner/transformer.py:
7         * misc/pyflakes.py:
8         * tests/Makefile.am:
9         Add pyflakes.py and run it in make check.
10         Update the source code to fix the errors reported by
11         pyflakes.
12
13 2008-08-14  Johan Dahlin  <johan@gnome.org>
14
15         * giscanner/ast.py:
16         * giscanner/girparser.py:
17         * giscanner/glibast.py:
18         * giscanner/glibtransformer.py:
19         Refactor the parser a bit.
20         Add parent type to interfaces and update callsites.
21
22 2008-08-14  Johan Dahlin  <johan@gnome.org>
23
24         * giscanner/glibtransformer.py:
25         * giscanner/utils.py:
26         Refactor a bit, avoid isinstance and add a method
27         for each type we parse.
28
29 2008-08-14  Johan Dahlin  <johan@gnome.org>
30
31         * giscanner/ast.py:
32         * giscanner/girparser.py:
33         * giscanner/glibtransformer.py:
34         * tests/Makefile.am:
35         Run pep8.py in make check, fix old errors.
36
37 2008-08-13  Colin Walters  <walters@verbum.org>
38
39         * giscanner/girparser.py: Parse records.
40
41 2008-08-13  Colin Walters  <walters@verbum.org>
42
43         * gir/Makefile.am: Install again.
44         * gir/gobject-2.0.gir: Add some more bits.
45
46 2008-08-13  Colin Walters  <walters@verbum.org>
47
48         * gir/gobject-2.0.gir: Use correct namespace, add GType.
49         * giscanner/girparser.py: Handle aliases.
50         * giscanner/transformer.py: Record aliases.  Make resolver
51         functions public; we now call into these explicitly from
52         glibtransformer.  Handle resolving aliases.
53         * giscanner/glibtransformer.py: Separate our internal namespace
54         from included ones.  Call up into transformer's resolver functions.
55
56 2008-08-13  Johan Dahlin  <johan@gnome.org>
57
58         * girepository/girnode.c (g_ir_node_get_full_size_internal):
59         * girepository/girparser.c (start_class):
60         * giscanner/glibtransformer.py:
61         Allow get_type to be None, set a get_type for GInitiallyUnowned too.
62
63 2008-08-13  Johan Dahlin  <johan@gnome.org>
64
65         * giscanner/cgobject.py:
66         Register GInitiallyUnowned
67         * giscanner/girwriter.py:
68         * giscanner/glibtransformer.py:
69         Special case GObject/GInitially owned as they are a bit special to use.
70
71 2008-08-13  Colin Walters  <walters@verbum.org>
72
73         * tests/scanner/Foo-expected.gir, tests/scanner/utility-expected.gir:
74         Object is in GObject namespace.
75
76 2008-08-13  Colin Walters  <walters@verbum.org>
77
78         * giscanner/girparser.py: Fix processing of functions
79         from last commit.
80
81 2008-08-13  Colin Walters  <walters@verbum.org>
82
83         * giscanner/girparser.py: Parse more than just <class.
84         * giscanner/glibtransformer.py: Put aliases in a separate
85         data structure since their name is not canonicall.
86         * giscanner/transformer.py: Handle resolving type names
87         from includes.
88
89 2008-08-13  Johan Dahlin  <johan@gnome.org>
90
91         * tools/g-ir-scanner:
92         Allow multiple libraries
93         * giscanner/glibtransformer.py:
94         Rename load_library to add_library, traverse over all libraries
95         when trying to resolve a function
96
97 2008-08-12  Colin Walters  <walters@verbum.org>
98
99         * giscanner/transformer.py: Record typedefs as <alias> elements.
100           Also attempt to look up types in external namespaces.
101         * giscanner/girwriter.py: Write them.
102         * giscanner/glibtransformer.py: Rework resolver using real instanceof
103         checks.  Resolve interface methods and properties.
104         * tests/scanner/foo-object.h: Add a method with typedef.
105         * tests/scanner/Foo-expected.gir: Update.
106         * girepository/girnode.c: Debug tweaks.
107         * girepository/girparser.c: Make a first pass through the XML where we
108         record all the aliases.  This lets us resolve them as we go through the
109         second pass.
110         * gir/Makefile.am: Don't install gobject-2.0.gir; we want that to come
111         from gir-repository.
112
113 2008-08-12  Colin Walters  <walters@verbum.org>
114
115         * giscanner/glibtransformer.py: Resolve typedefs (e.g. AtkAttributeSet -> GSList).
116         Correctly do subclasseing in 2nd pass resolution.  Handle callbacks in structure
117         fields.
118         * giscanner/transformer.py: Record typedefs and expose public API for resolving
119         them.
120         * tests/scanner/Foo-expected.gir: Fix expected callback types.
121
122 2008-08-12  Colin Walters  <walters@verbum.org>
123
124         * giscanner/glibtransformer.py: Also transform object properties.
125
126 2008-08-12  Colin Walters  <walters@verbum.org>
127
128         * giscanner/glibtransformer.py: Also transform callbacks
129         and structure field types.
130         * tests/scanner/Fooe-expected.gir: Update to expect correct
131         names for callbacks and structs.
132
133 2008-08-12  Colin Walters  <walters@verbum.org>
134
135         * girepository/girparser.c: Handle 'any'.
136         * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
137         Add test for void *.
138
139 2008-08-12  Colin Walters  <walters@verbum.org>
140
141         * giscanner/glibtransformer.py: We need to do type
142         resolution in a second pass after we've seen all the
143         enums, records, etc.
144
145 2008-08-12  Colin Walters  <walters@verbum.org>
146
147         * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
148         Add enum return value.
149         * giscanner/glibtransformer.py: Transform function return types
150         too.
151
152 2008-08-12  Colin Walters  <walters@verbum.org>
153
154         * tests/scanner/Makefile.am: Dep .gir files on scanner
155         sources too.  Also remove @ so we see scanner invocations.
156
157 2008-08-12  Colin Walters  <walters@verbum.org>
158
159         * girepository/girparser.c, girepository/gtypelib.c,
160         girepository/gtypelib.h, girepository/girnode.c:
161         Remove usage of (GAPI-oriented) TypeTag in favor of
162         GITypeTag from girepository.h.
163
164 2008-08-10  Colin Walters  <walters@verbum.org>
165
166         * tests/roundtrips.sh: Use the correct tests.
167
168 2008-08-10  Colin Walters  <walters@verbum.org>
169
170         * giscanner/cgobject.py: Declare/wrap a few more functions.
171         Fix parameter types for g_object_new and g_type_fundamental.
172
173 2008-08-10  Colin Walters  <walters@verbum.org>
174
175         * giscanner/cgobject.py: Add new decorator @gwrap which forces
176         us to declare types for both return value and parameters.  The
177         ctypes default of 'int' is bad because it hides 32/64 bit
178         problems.  Convert all existing functions to use it.
179
180 2008-08-09  Johan Dahlin  <johan@gnome.org>
181
182         * giscanner/__init__.py:
183         * giscanner/ast.py:
184         * giscanner/cgobject.py:
185         * giscanner/gidlparser.py:
186         * giscanner/gidlwriter.py:
187         * giscanner/girparser.py:
188         * giscanner/girwriter.py:
189         * giscanner/glibast.py:
190         * giscanner/glibtransformer.py:
191         * giscanner/odict.py:
192         * giscanner/sourcescanner.py:
193         * giscanner/transformer.py:
194         * giscanner/utils.py:
195         * giscanner/xmlwriter.py:
196         * tools/g-ir-scanner:
197
198         PEP8ify
199
200 2008-08-09  Johan Dahlin  <johan@gnome.org>
201
202         * relaxng/api.xml:
203         * relaxng/c-types.xml:
204         * relaxng/g-types.xml:
205         * relaxng/relaxng.rng:
206         * relaxng/util.xml:
207         Remove outdated relaxng schemas.
208
209 2008-08-09  Johan Dahlin  <johan@gnome.org>
210
211         * *.[ch]:
212         Rename metadata to typelib in variable names,
213         comments and apis.
214
215 2008-08-09  Johan Dahlin  <johan@gnome.org>
216
217         * tools/scanner.c:
218         * tools/scanner.h:
219         Remove old C scanner, which got rewritten in python.
220
221 2008-08-09  Johan Dahlin  <johan@gnome.org>
222
223         * girepository/Makefile.am:
224         * tools/Makefile.am:
225         * tools/girmodule.c:
226         * tools/girmodule.h:
227         * tools/girnode.c:
228         * tools/girnode.h:
229         * tools/girparser.c:
230         * tools/girparser.h:
231         * tools/girwriter.c:
232         * tools/girwriter.h:
233         Move shared *.[ch] files to girepository from tools
234
235 2008-08-09  Johan Dahlin  <johan@gnome.org>
236
237         * tests/Makefile.am:
238         * tests/array.test:
239         * tests/boxed.test:
240         * tests/constant.test:
241         * tests/enum.test:
242         * tests/errors.test:
243         * tests/function.test:
244         * tests/gobject.test:
245         * tests/interface.test:
246         * tests/object.test:
247         * tests/struct.test:
248         * tests/types.test:
249         * tests/union.test:
250         * tests/xref1.test:
251         * tests/xref2.test:
252         Rename *.test to *.gir
253
254 2008-08-09  Johan Dahlin  <johan@gnome.org>
255
256         * configure.ac:
257         * tests/Makefile.am:
258         * tests/parser/Foo-expected.gir:
259         * tests/parser/Makefile.am:
260         * tests/parser/foo-object.h:
261         * tests/parser/foo.c:
262         * tests/parser/utility-expected.gir:
263         * tests/parser/utility.c:
264         * tests/parser/utility.h:
265         * tests/scanner/Makefile.am:
266         Rename tests/parser to test/scanner
267
268 2008-08-08  Colin Walters  <walters@verbum.org>
269
270         * tests/roundtrips.sh: Use local .gir files again.
271
272 2008-08-08  Colin Walters  <walters@verbum.org>
273
274         * tests/invoke/Makefile.am: .gir file depends on libtool
275         library.
276
277 2008-08-08  Colin Walters  <walters@verbum.org>
278
279         * tools/girnode.c: Pass through parent node so we can
280         print the node whose child is NULL, if that occurs.
281
282 2008-08-08  Johan Dahlin  <johan@gnome.org>
283
284         * tests/Makefile.am:
285         Disable roundtrip tests which are not yet working
286         * tests/invoke/testfns.gir:
287         Rewrite as gir.
288
289 2008-08-08  Johan Dahlin  <johan@gnome.org>
290
291         * giscanner/girwriter.py:
292         type -> ntype
293         * giscanner/glibast.py:
294         * giscanner/glibtransformer.py:
295         Swap order of members, to keep it consistent with
296         base enum class
297
298 2008-08-08  Johan Dahlin  <johan@gnome.org>
299
300         * girepository/gtypelib.c (validate_header):
301         * girepository/gtypelib.h:
302         * giscanner/ast.py:
303         * giscanner/girwriter.py:
304         * giscanner/sourcescanner.c (gi_source_symbol_ref),
305         (gi_source_symbol_unref):
306         * tests/array.test:
307         * tests/boxed.test:
308         * tests/constant.test:
309         * tests/enum.test:
310         * tests/errors.test:
311         * tests/function.test:
312         * tests/gobject.test:
313         * tests/interface.test:
314         * tests/invoke/Makefile.am:
315         * tests/invoke/testfns.xml:
316         * tests/object.test:
317         * tests/parser/Makefile.am:
318         * tests/roundtrips.sh:
319         * tests/struct.test:
320         * tests/types.test:
321         * tests/union.test:
322         * tests/xref1.test:
323         * tests/xref2.test:
324         * tools/Makefile.am:
325         * tools/compiler.c (main):
326         * tools/generate.c (write_callable_info), (write_function_info),
327         (write_repository):
328         * tools/gidlmodule.c:
329         * tools/gidlmodule.h:
330         * tools/gidlnode.c:
331         * tools/gidlnode.h:
332         * tools/gidlparser.c:
333         * tools/gidlparser.h:
334         * tools/gidlwriter.c:
335         * tools/gidlwriter.h:
336         * tools/scanner.c (create_node_from_gtype),
337         (create_node_from_ctype), (g_igenerator_process_properties),
338         (g_igenerator_process_signals), (g_igenerator_create_object),
339         (g_igenerator_create_interface), (g_igenerator_create_boxed),
340         (g_igenerator_create_enum), (g_igenerator_create_flags),
341         (g_igenerator_process_function_symbol),
342         (g_igenerator_process_unregistered_struct_typedef),
343         (g_igenerator_process_struct_typedef),
344         (g_igenerator_process_union_typedef),
345         (g_igenerator_process_enum_typedef),
346         (g_igenerator_process_function_typedef),
347         (g_igenerator_process_constant), (g_igenerator_process_symbols),
348         (g_igenerator_add_module), (g_igenerator_add_include_idl):
349         Merge in the gir-compiler branch.
350         Thanks to Philip and Colin for their help.
351
352 2008-07-26  Colin Walters  <walters@verbum.org>
353
354         * tools/Makefile.am (bin_PROGRAMS): Install g-idl-compiler
355         and g-idl-generate to go along with how we're changing this
356         module to be installed.
357         * gobject-introspection-1.0.pc.in: Set up Cflags and Libs.
358
359 2008-07-24  Colin Walters  <walters@verbum.org>
360
361         * girepository/girepository.c (g_irepository_register): Add
362         environment variable G_IREPOSITORY_VERBOSE so we can print
363         out what we're doing.
364         * girepository/girepository.c (g_irepository_register_file): 
365         Add GError error message to g_debug call.
366
367 2008-07-08  Jürg Billeter  <j@bitron.ch>
368
369         * giscanner/glibast.py:
370
371         Fix typo
372
373 2008-06-21  Johan Dahlin  <jdahlin@async.com.br>
374
375         * giscanner/girparser.py (GIRParser._parse_api): Ignore a few
376         more tags
377
378 2008-06-20  Johan Dahlin  <jdahlin@async.com.br>
379
380         * giscanner/ast.py:
381         * giscanner/girwriter.py:
382         * giscanner/transformer.py:
383         * tests/parser/Foo-expected.gir:
384         * tests/parser/foo-object.h:
385         * tests/parser/foo.c (foo_object_allow_none):
386         Add support for gtk-doc annotations for allow-none.
387         Add test case.
388
389 2008-06-19  Johan Dahlin  <jdahlin@async.com.br>
390
391         * giscanner/ast.py:
392         * giscanner/girwriter.py:
393         * giscanner/glibast.py:
394         * giscanner/glibtransformer.py:
395         * giscanner/transformer.py:
396         * tests/parser/Foo-expected.gir:
397         Start using abstract type instead of the raw C types.
398         Register a bunch of glib types we care about.
399
400 2008-06-19  Rob Taylor  <rob.taylor@codethink.co.uk>
401
402         * AUTHORS:
403         Update authors
404
405 2008-06-08  Philip Van Hoof  <pvanhoof@gnome.org>
406
407         * girepository/girepository.c:
408         * girepository/gtypelib.c:
409         * girepository/ginfo.c:
410         * girepository/ginvoke.c:
411         * girepository/girepository.h:
412         * girepository/gtypelib.h:
413         * girepository/gmetadata.c:
414         * girepository/Makefile.am:
415         * girepository/gmetadata.h:
416         * tools/compiler.c:
417         * tools/gidlmodule.c:
418         * tools/gidlnode.c
419         * tools/generate.c:
420         * tools/gidlmodule.h:
421         * tools/gidlparser.c:
422
423         Renamed GMetadata to GTypelib
424
425 2008-06-07  Johan Dahlin  <jdahlin@async.com.br>
426
427         * giscanner/xmlwriter.py:
428         Improve line wrapping when > 79 charaters
429
430 2008-06-05  Jürg Billeter  <j@bitron.ch>
431
432         * giscanner/ast.py:
433         * giscanner/girwriter.py:
434         * giscanner/transformer.py:
435         Use <type> element for field types
436         * tests/parser/Foo-expected.gir:
437         Update testcase
438
439 2008-06-04  Johan Dahlin  <jdahlin@async.com.br>
440
441         * giscanner/glibtransformer.py:
442         Fix a bug which prevented GdkEvent from being generated
443
444 2008-06-03  Johan Dahlin  <jdahlin@async.com.br>
445
446         * giscanner/Makefile.am:
447         * giscanner/ast.py:
448         * giscanner/girwriter.py:
449         * giscanner/glibast.py:
450         * giscanner/glibtransformer.py:
451         * giscanner/transformer.py:
452         * giscanner/utils.py:
453         * tests/parser/Foo-expected.gir:
454         Improve enum member parsing and introspection
455
456 2008-05-31  Johan Dahlin  <jdahlin@async.com.br>
457
458         * giscanner/scannerparser.y:
459         * giscanner/sourcescanner.h:
460         * giscanner/sourcescanner.py:
461         Add a new source type enum for member.
462         Use __repr__ for improved debugging
463         * giscanner/girparser.py:
464         Ignore some more
465         * giscanner/transformer.py:
466         Improve parsing of struct members.
467         * tests/parser/foo-object.h:
468         Add a new testcase
469
470 2008-05-31  Johan Dahlin  <jdahlin@async.com.br>
471
472         * giscanner/xmlwriter.py:
473         Improve error reporting when trying to quote None.
474         * giscanner/girparser.py:
475         Do not print warnings when including more complete .gir files
476         * giscanner/girwriter.py:
477         Do not require a name for parameters, add a todo for singletons
478         * giscanner/glibtransformer.py:
479         Refactor the way structs are done, add a couple of hacks to allow
480         us to get further.
481         * giscanner/transformer.py:
482         Add enough hacks so cairo, atk and pango.gir can be parsed properly
483         * gobject-introspection-1.0.pc.in:
484         Export girdir, so we can access gobject-2.0.gir from outside
485
486 2008-05-31  Johan Dahlin  <jdahlin@async.com.br>
487
488         * tools/g-ir-scanner:
489         * tests/parser/Makefile.am:
490         Update sys.path before running the parser so we don't have
491         to setup PYTHONPATH ourselves.
492
493         * Makefile.am:
494         * configure.ac:
495         * girepository/Makefile.am:
496         * giscanner/transformer.py:
497         * gobject-introspection-1.0.pc.in:
498         * gobject-introspection.pc.in:
499         * tools/Makefile.am:
500
501         Rename pkg-config name to gobject-introspection-1.0,
502         Do not installed anything which is not using the gir format.
503         Disable compililation the old C scanner, but still keep the source
504         until all the remaning functionallity has been ported.
505
506 2008-05-31  Johan Dahlin  <jdahlin@async.com.br>
507
508         * giscanner/giscannermodule.c (symbol_get_ident): Prevent
509         a crash when symbol->indent is NULL.
510
511         * giscanner/sourcescanner.py (ctype_name): Add ctype_name,
512         a function to convert a CTYPE symbol to a string
513
514 2008-05-24  Johan Dahlin  <jdahlin@async.com.br>
515
516         * giscanner/ast.py:
517         * giscanner/girwriter.py:
518         * giscanner/giscannermodule.c
519         (pygi_source_scanner_append_filename),
520         (pygi_source_scanner_parse_file):
521         * giscanner/glibtransformer.py:
522         * giscanner/sourcescanner.py:
523         Revert back to using temporary files to send in headers.
524         Allow Functions to be passed in as callbacks, add a couple
525         of try/excepts missing features.
526         We can now scan pango
527
528 2008-05-08  Johan Dahlin  <johan@gnome.org>
529
530         * giscanner/glibtransformer.py:
531         * giscanner/transformer.py:
532         Move namespace stripping glibtransformer->transformer
533
534 2008-05-08  Johan Dahlin  <johan@gnome.org>
535
536         * giscanner/ast.py:
537         * giscanner/girwriter.py:
538         * giscanner/glibtransformer.py:
539         * giscanner/transformer.py:
540         * tools/g-ir-scanner:
541         Introduce a namespace ast node
542
543 2008-05-05  Johan Dahlin  <johan@gnome.org>
544
545         * giscanner/__init__.py:
546         * giscanner/sourcescanner.py:
547         * giscanner/transformer.py:
548         Move sourcescanner symbols to the sourcescanner module, instead
549         of in the global __init__ namespace.
550
551 2008-05-03  Johan Dahlin  <johan@gnome.org>
552
553         * giscanner/glibtransformer.py:
554         * tools/g-ir-scanner:
555         Handle missing parameters better, allow - and + in .la dlname
556         filenames.
557
558 2008-05-03  Johan Dahlin  <johan@gnome.org>
559
560         * giscanner/__init__.py:
561         * giscanner/ast.py:
562         * giscanner/girwriter.py:
563         * giscanner/glibtransformer.py:
564         * giscanner/transformer.py:
565         Parse struct fields properly, improve debugging.
566
567 2008-04-29  Johan Dahlin  <johan@gnome.org>
568
569         * giscanner/ast.py:
570         * giscanner/girwriter.py:
571         * giscanner/transformer.py:
572         * tests/parser/Foo-expected.gir:
573         * TODO:
574         Use transfer-ownership everywhere, to mark ownership/calle/caller etc.
575
576 2008-04-29  Johan Dahlin  <jdahlin@async.com.br>
577
578         * Makefile.am:
579         * docs/g-ir-scanner.1:
580         * metadata-annotations-proposal.txt:
581         * metadata-format.txt:
582         Add a basic, unfinshed man page for g-ir-scanner, move documents into .txt
583
584 2008-04-29  Johan Dahlin  <jdahlin@async.com.br>
585
586         * giscanner/girwriter.py:
587         * giscanner/glibtransformer.py:
588         * giscanner/transformer.py:
589         * giscanner/xmlwriter.py:
590         * tests/parser/Foo-expected.gir:
591         * tests/parser/foo-object.h:
592         Write record/structs to gir file too. Add a couple of tests,
593         fix an off by one error in xmlwriter.py.
594
595 2008-04-28  Johan Dahlin  <johan@gnome.org>
596
597         * giscanner/xmlwriter.py: Calculate the line length properly,
598         include the provided extra indentation in the calculation, really.
599
600 2008-04-28  Johan Dahlin  <jdahlin@async.com.br>
601
602         * giscanner/ast.py:
603         * giscanner/glibast.py:
604         * giscanner/glibtransformer.py:
605         * giscanner/transformer.py:
606         * tools/g-ir-scanner:
607         Add a --strip-prefix and sort out confusion between names and symbols
608         for functions and struct + derivaties.
609         Refactor bootstrap of g-ir-scanner, so we can set options on
610         Transformer() before parsing everything.
611
612 2008-04-28  Johan Dahlin  <johan@gnome.org>
613
614         * giscanner/transformer.py (Transformer._traverse_one): Avoid recursion
615         when scanning girepository.h
616
617         * giscanner/sourcescanner.py (SourceScanner._preprocess): Define
618         a __GI_SCANNER__ when we run.
619
620 2008-04-28  Johan Dahlin  <jdahlin@async.com.br>
621
622         * giscanner/ast.py:
623         * giscanner/girwriter.py:
624         * giscanner/glibast.py:
625         * giscanner/glibtransformer.py:
626         * tests/parser/Foo-expected.gir:
627         * tests/parser/utility-expected.gir:
628         Rename most c:identifier to c:type. Add new ones to
629         class/interface/enum/boxed.
630
631 2008-04-28  Johan Dahlin  <jdahlin@async.com.br>
632
633         * giscanner/ast.py:
634         * giscanner/girwriter.py:
635         * giscanner/glibtransformer.py:
636         * tests/parser/Foo-expected.gidl:
637         * tests/parser/Makefile.am:
638         Move c:identifier from return-value to subchild type,
639         as per Jürgs suggestion
640
641 2008-04-28  Johan Dahlin  <johan@gnome.org>
642
643         * giscanner/girwriter.py:
644         * tests/parser/Foo-expected.gir:
645         Write property.type as a child node.
646
647 2008-04-27  Johan Dahlin  <johan@gnome.org>
648
649         * Makefile.am:
650         * configure.ac:
651         * gidl/Makefile.am:
652         * gidl/gobject-2.0.gidl:
653         * gir/Makefile.am:
654         * gir/gobject-2.0.gir:
655         * tests/parser/Makefile.am:
656         Replace the GObject gidl with a GObject gir.
657
658 2008-04-27  Johan Dahlin  <johan@gnome.org>
659
660         * tools/Makefile.am (bin_SCRIPTS): g-ir-scanner is a script,
661         not a program.
662
663         * giscanner/xmlwriter.py:
664         * tests/parser/Foo-expected.gir:
665         Include indentation in line length calculation
666
667 2008-04-27  Johan Dahlin  <johan@gnome.org>
668
669         * giscanner/girparser.py:
670         Prettify NS parsing using elementtree.
671
672 2008-04-27  Johan Dahlin  <johan@gnome.org>
673
674         * configure.ac:
675         * giscanner/Makefile.am:
676         * giscanner/girparser.py:
677         * giscanner/glibtransformer.py:
678         * tests/parser/Foo-expected.gidl:
679         * tests/parser/Foo-expected.gir:
680         * tests/parser/Makefile.am:
681         * tests/parser/utility-expected.gidl:
682         * tests/parser/utility-expected.gir:
683         * tools/g-ir-scanner:
684         Switch over to GIR as the default format. Add a simple GIDL
685         parser.
686         Update tests and fix simplify makefiles by depending
687         on GNU make extensions.
688
689 2008-04-27  Johan Dahlin  <johan@gnome.org>
690
691         * giscanner/xmlwriter.py:
692         Wrap attributes for lines which are wider than 79 characters
693
694         * giscanner/scannerlexer.l:
695         Allow parenthesis in annotations
696
697         * giscanner/ast.py:
698         * giscanner/gidlwriter.py:
699         * giscanner/girwriter.py:
700         * giscanner/glibtransformer.py:
701         * giscanner/transformer.py:
702         Add initial sequence support, including annotation.
703         Refactor type handling a bit.
704
705 2008-04-27  Johan Dahlin  <johan@gnome.org>
706
707         * tests/parser/Foo-expected.gidl:
708         * tests/parser/foo-object.h:
709         * tests/parser/foo.c (foo_object_class_init),
710         (foo_object_get_strings), (foo_object_get_objects):
711         Add two new functions to check sequence return values.
712         Also fixes a compilation warning.
713
714 2008-04-27  Johan Dahlin  <johan@gnome.org>
715
716         * giscanner/giscannermodule.c (]): Cast the getter, avoids
717         a compilation warning.
718
719         * tools/Makefile.am (g_ir_scanner_SOURCES):
720         g-ir-scanner has no sources.
721
722 2008-04-25  Johan Dahlin  <johan@gnome.org>
723
724         * giscanner/Makefile.am:
725         * giscanner/ast.py:
726         * giscanner/gidlparser.py:
727         * giscanner/gidlwriter.py:
728         * giscanner/girwriter.py:
729         * giscanner/glibast.py:
730         * giscanner/glibtransformer.py:
731         * giscanner/transformer.py:
732         Split out nodes to ast.py and glibast.py
733
734 2008-04-25  Johan Dahlin  <jdahlin@async.com.br>
735
736         * giscanner/Makefile.am:
737         * giscanner/gidlparser.py:
738         * giscanner/gidlwriter.py:
739         * giscanner/girwriter.py:
740         * giscanner/glibtransformer.py:
741         * giscanner/gobjecttreebuilder.py:
742         * giscanner/transformer.py:
743         * giscanner/treebuilder.py:
744         * tools/g-ir-scanner:
745         Rename treebuilder to transformer and
746         gobjectreebuilder to glibtransformer.
747
748 2008-04-25  Johan Dahlin  <jdahlin@async.com.br>
749
750         * giscanner/Makefile.am:
751         * giscanner/__init__.py:
752         * giscanner/cgobject.py:
753         * giscanner/gidlparser.py:
754         * giscanner/gidlwriter.py:
755         * giscanner/girwriter.py:
756         * giscanner/gobjecttreebuilder.py:
757         * giscanner/odict.py:
758         * giscanner/sourcescanner.py:
759         * giscanner/treebuilder.py:
760         * giscanner/xmlwriter.py:
761         * tools/Makefile.am:
762         * tools/g-ir-scanner:
763         Add LGPLv2 license header and install all python files
764
765 2008-04-25  Johan Dahlin  <jdahlin@async.com.br>
766
767         * TODO:
768         * giscanner/gidlwriter.py:
769         * giscanner/giscannermodule.c (pygi_source_directive_new),
770         (directive_get_options), (pygi_source_symbol_new),
771         (symbol_get_base_type), (pygi_source_type_new),
772         (type_get_base_type), (type_get_child_list),
773         (pygi_source_scanner_get_symbols),
774         (pygi_source_scanner_get_directives):
775         * giscanner/gobjecttreebuilder.py:
776         * giscanner/sourcescanner.py:
777         * giscanner/treebuilder.py:
778         * tests/parser/foo-object.h:
779         Add support for virtual methods.
780         Pair struct FooClass with struct Foo.
781         Clean up the SourceScanner bindings a bit.
782         Add a testcase for virtual methods.
783
784 2008-04-25  Johan Dahlin  <jdahlin@async.com.br>
785
786         * giscanner/cgobject.py:
787         * giscanner/gidlwriter.py:
788         * giscanner/gobjecttreebuilder.py:
789         Add support for signals
790
791         * tests/parser/foo.c (foo_object_class_init):
792         * Foo-expected.gidl:
793         Add a signal and update the expected output.
794
795 2008-04-24  Johan Dahlin  <jdahlin@async.com.br>
796
797         * giscanner/gidlwriter.py:
798         * giscanner/girwriter.py:
799         * giscanner/giscannermodule.c (directive_get_name),
800         (directive_get_value), (directive_get_options),
801         (symbol_get_directives), (symbol_set_directives),
802         (pygi_source_scanner_parse_file),
803         (pygi_source_scanner_lex_filename),
804         (pygi_source_scanner_get_directives), (init_giscanner):
805         * giscanner/sourcescanner.c (gi_source_scanner_get_directives):
806         * giscanner/sourcescanner.h:
807         * giscanner/sourcescanner.py:
808         * giscanner/treebuilder.py:
809         * tools/g-ir-scanner:
810         Add support for source/header annotations.
811
812 2008-04-22  Johan Dahlin  <jdahlin@async.com.br>
813
814         * giscanner/gidlwriter.py:
815         * giscanner/girwriter.py:
816         * giscanner/gobjecttreebuilder.py:
817         * giscanner/treebuilder.py:
818         Add support for Callbacks
819
820 2008-04-22  Havoc Pennington  <hp@pobox.com>
821
822         * girepository/ginvoke.c (g_function_info_invoke): If a symbol is
823         not in metadata->module, look for it in the global module, in case
824         some other object or the app itself provides the symbol.
825
826 2008-04-22  Havoc Pennington  <hp@pobox.com>
827
828         * girepository/gmetadata.c (_g_metadata_init): hack to avoid
829         dlopening a library that is already in the main app, by checking
830         whether one of the lib's symbols is already loaded.
831
832 2008-04-22  Johan Dahlin  <jdahlin@async.com.br>
833
834         * tests/parser/Foo-expected.gidl:
835         * tests/parser/foo-object.h:
836         Add a callback test
837
838 2008-04-22  Havoc Pennington  <hp@pobox.com>
839
840         * girepository/ginfo.c (g_interface_info_find_method):
841         Use interface_blob_size not object_blob_size to compute offset.
842
843 2008-04-22  Havoc Pennington  <hp@pobox.com>
844
845         * girepository/gmetadata.c (_g_metadata_init): remove
846         G_MODULE_BIND_LOCAL flag when loading libraries, since some libs
847         (Glade and Clutter for example) rely on being loaded globally.
848
849 2008-04-22  Havoc Pennington  <hp@pobox.com>
850
851         * girepository/ginfo.c (g_registered_type_info_get_g_type): new
852         function to get the GType given a RegisteredTypeInfo
853
854 2008-04-22  Johan Dahlin  <johan@gnome.org>
855
856         * COPYING: Add a LGPL license, to prevent automake to
857         put in a copy of GPL here. Pointed out by Havoc.
858
859         * girepository/ginfo.c (g_info_from_entry), (g_type_info_new),
860         (g_type_info_is_pointer), (g_type_info_get_tag),
861         (g_type_info_get_param_type), (g_type_info_get_interface),
862         (g_type_info_get_array_length), (g_type_info_is_zero_terminated),
863         (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
864         (g_error_domain_info_get_codes), (g_enum_info_get_value),
865         (g_object_info_get_interface), (g_object_info_get_field),
866         (g_interface_info_get_prerequisite),
867         (g_signal_info_get_class_closure), (g_constant_info_get_value):
868         * girepository/ginvoke.c (get_ffi_type):
869         * girepository/girepository.h:
870         * girepository/gmetadata.c (g_metadata_get_dir_entry),
871         (g_metadata_check_sanity), (validate_header),
872         (validate_array_type_blob), (validate_iface_type_blob),
873         (validate_param_type_blob), (validate_error_type_blob),
874         (validate_type_blob), (validate_constant_blob),
875         (validate_struct_blob), (validate_enum_blob):
876         * girepository/gmetadata.h:
877         * tests/Makefile.am:
878         * tests/invoke/Makefile.am:
879         * tests/invoke/invoke.c (main):
880         * tests/roundtrips.sh:
881         * tools/Makefile.am:
882         * tools/compiler.c (format_output), (write_out_metadata), (main):
883         * tools/generate.c (write_type_name), (write_type_info),
884         (write_constant_value), (write_enum_info), (load_metadata), (main):
885         * tools/gidlcompilercontext.c:
886         * tools/gidlcompilercontext.h:
887         * tools/gidlcompilerentrynode.c:
888         * tools/gidlcompilerentrynode.h:
889         * tools/gidlcompilertypenode.c:
890         * tools/gidlcompilertypenode.h:
891         * tools/gidlmodule.c (g_idl_module_build_metadata):
892         * tools/gidlmodule.h:
893         * tools/gidlnode.c (init_stats), (dump_stats),
894         (g_idl_node_get_size), (g_idl_node_get_full_size),
895         (g_idl_node_cmp), (g_idl_node_can_have_member),
896         (g_idl_node_add_member), (g_idl_node_param_direction_string),
897         (parse_int_value), (parse_uint_value), (parse_float_value),
898         (parse_boolean_value), (find_entry_node), (find_entry),
899         (serialize_type), (g_idl_node_build_metadata), (write_string):
900         * tools/gidlnode.h:
901         * tools/gidlparser.c (parse_type_internal):
902         * tools/quote-file.sh:
903         Revert revisions 157,149-148,136-129 and 120.
904         Move back to using g-idl-generate to generate the metadata and
905         avoids dependency on a c compiler.
906
907 2008-04-22  Johan Dahlin  <jdahlin@async.com.br>
908
909         * giscanner/girwriter.py:
910         * tools/g-ir-scanner:
911         Add an initial GIR writer and a --format option to g-ir-scanner
912
913 2008-04-21  Johan Dahlin  <johan@gnome.org>
914
915         * giscanner/cgobject.py: Use ctypes.util.find_library to locate
916         gobject-2.0 and raise ImportError if not found.
917
918         * giscanner/gidlparser.py:
919         * giscanner/gidlwriter.py:
920         * giscanner/gobjecttreebuilder.py:
921         * tools/g-ir-scanner:
922         Add a --include argument to include types from other idls.
923         Add a minimalistic GIDL parser (just objects for now)
924         Implement resolving of external type references and use it to
925         resolve parent types, argument types and return types.
926
927 2008-04-21  Johan Dahlin  <johan@gnome.org>
928
929         * giscanner/gidlwriter.py:
930         * giscanner/gobjecttreebuilder.py:
931         * giscanner/treebuilder.py:
932         Add support for properties.
933         Refactor Class/Interface support a bit, to share more code and
934         always initialize their method attribute to an empty list.
935
936 2008-04-21  Johan Dahlin  <johan@gnome.org>
937
938         * giscanner/cgobject.py:
939         Add a workaround for a glib bug interface introspection bug
940         (object_interface_list_properties, object_class_list_properties):
941         Cast the return value to GParamSpec.
942
943         * tests/parser/Foo-expected.gidl: Update
944         * tests/parser/foo.c: Add a string property
945
946         * giscanner/gobjecttreebuilder.py:
947         After stripping namespaces, remove the original
948         item to avoid duplication (GtkButton struct and Button object)
949
950 2008-04-21  Johan Dahlin  <johan@gnome.org>
951
952         * giscanner/gobjecttreebuilder.py:
953         * giscanner/treebuilder.py:
954         Strip namespaces before objects, so we'll export
955         GtkButton as Button in the gtk namespace
956
957 2008-04-21  Johan Dahlin  <johan@gnome.org>
958
959         * giscanner/gidlwriter.py:
960         * giscanner/gobjecttreebuilder.py:
961         * giscanner/treebuilder.py:
962         Add constructors for object/boxed types.
963
964 2008-04-21  Johan Dahlin  <johan@gnome.org>
965
966         * giscanner/gidlwriter.py:
967         * giscanner/gobjecttreebuilder.py:
968         Add support for boxed types
969
970 2008-04-21  Johan Dahlin  <johan@gnome.org>
971
972         * giscanner/giscannermodule.c: Mark structures as const,
973         wrap SourceType.const_string.
974
975         * tests/parser/foo-object.h: Add a couple of constants.
976
977         * giscanner/gidlwriter.py:
978         * giscanner/gobjecttreebuilder.py:
979         * giscanner/treebuilder.py:
980         Add basic support for interfaces
981
982         * tools/g-ir-scanner:
983         Add -o/--output for writing to a file
984
985 2008-04-21  Havoc Pennington  <hp@redhat.com>
986
987         * TODO: add some C API wishlist items I could think of quickly
988
989 2008-04-21  Johan Dahlin  <jdahlin@async.com.br>
990
991         * giscanner/gidlwriter.py:
992         * giscanner/xmlwriter.py:
993         Add a simple api for writing tags which can be used 
994         with the new 'with statement' in python 2.5
995
996 2008-04-21  Johan Dahlin  <johan@gnome.org>
997
998         * giscanner/gobjecttreebuilder.py:
999         Strip namespace and object prefix from method names.
1000
1001 2008-04-21  Johan Dahlin  <johan@gnome.org>
1002
1003         * tools/g-ir-scanner (main): Add --pkg option to pass in
1004         pkg-config modules to get cflags from.
1005
1006         * giscanner/gidlwriter.py (GIDLWriter._write_method): 
1007         Avoid duplication, reuse function writer for methods.
1008
1009 2008-04-21  Johan Dahlin  <jdahlin@async.com.br>
1010
1011         * giscanner/gidlwriter.py:
1012         * giscanner/gobjecttreebuilder.py:
1013         * giscanner/treebuilder.py:
1014         * tools/g-ir-scanner:
1015         Resolve libtool .la files.
1016         Strip name spaces for methods.
1017         Add function symbols
1018
1019 2008-04-20  Johan Dahlin  <jdahlin@async.com.br>
1020
1021         * giscanner/cgobject.py:
1022         * giscanner/gidlwriter.py:
1023         * giscanner/gobjecttreebuilder.py:
1024         * giscanner/treebuilder.py:
1025         Add support for classes and methods
1026
1027 2008-04-20  Johan Dahlin  <johan@gnome.org>
1028
1029         * giscanner/gidlwriter.py:
1030         * giscanner/gobjecttreebuilder.py:
1031         * giscanner/odict.py:
1032         Avoid conflicts, keep the output ordered similar to
1033         the order of the input.
1034         Add a simple ordered dictionary implemenation
1035
1036 2008-04-19  Johan Dahlin  <johan@gnome.org>
1037
1038         * giscanner/cgobject.py:
1039         * giscanner/gidlwriter.py:
1040         * giscanner/gobjecttreebuilder.py:
1041         * tools/g-ir-scanner:
1042         Start introspecting get-type functions.
1043         Implement support for GLib/GFlags GTypes.
1044         Add a ctype based GObject binding.
1045
1046 2008-04-18  Johan Dahlin  <jdahlin@async.com.br>
1047
1048         * giscanner/gidlwriter.py:
1049         * giscanner/xmlwriter.py:
1050         * tools/g-ir-scanner:
1051         Add a simplistic gidl writer, which can't do too much.
1052
1053 2008-04-18  Johan Dahlin  <johan@gnome.org>
1054
1055         * giscanner/sourcescanner.py:
1056         * giscanner/treebuilder.py:
1057         * tools/g-ir-scanner:
1058         split tree building and source scanning interface to separate files.
1059
1060 2008-04-18  Johan Dahlin  <johan@gnome.org>
1061
1062         * tools/g-ir-scanner (Parameter.__init__): Start constructing
1063         a real node tree.
1064         - Add support for struct/parameter/return, start parsing of ctypes
1065
1066         * giscanner/giscannermodule.c: wrap GISourceType.child_list and
1067         fix the style
1068
1069 2008-03-31  Johan Dahlin  <johan@gnome.org>
1070
1071         * tools/g-ir-scanner:
1072         Start to build abstract syntax node of scanned sources.
1073         Add support for cpp options.
1074
1075 2008-03-27  Johan Dahlin  <johan@gnome.org>
1076
1077         * giscanner/giscannermodule.c:
1078         * giscanner/scannerlexer.l:
1079         * giscanner/sourcescanner.c:
1080         * tools/g-ir-scanner:
1081
1082         Add simple pre-processor using subprocess and a PIPE.
1083         Change the parse_file apis to accept a file descriptor.
1084
1085 2008-03-25  Johan Dahlin  <johan@gnome.org>
1086
1087         * giscanner/__init__.py:
1088         * tools/g-ir-scanner:
1089         Fix a typo and add an example python test program.
1090
1091 2008-03-25  Johan Dahlin  <johan@gnome.org>
1092         
1093         * giscanner/__init__.py:
1094         * giscanner/giscannermodule.c:
1095         * giscanner/sourcescanner.c:
1096         * giscanner/sourcescanner.h:
1097         Add constants and wrap a few more SymbolType fields
1098
1099 2008-03-25  Johan Dahlin  <johan@gnome.org>
1100         
1101         * configure.ac:
1102         * giscanner:
1103         * giscanner/__init__.py:
1104         * giscanner/giscannermodule.c:
1105         * giscanner/Makefile.am:
1106
1107         Add initial python bindings for the scanner and 
1108         depend on python 2.5.
1109
1110 2008-03-25  Johan Dahlin  <johan@gnome.org>
1111
1112         * Makefile.am:
1113         * configure.ac:
1114         * giscanner/Makefile.am:
1115         * giscanner/sourcescanner.c:
1116         * giscanner/sourcescanner.h:
1117         * tools/Makefile.am:
1118         * tools/grealpath.h:
1119         * tools/sourcescanner.c:
1120         * tools/sourcescanner.h:
1121
1122         Move the scanner to a separate library.
1123         
1124 2008-03-23  Johan Dahlin  <johan@gnome.org>
1125
1126         * tools/Makefile.am:
1127         * tools/scanner.c:
1128         * tools/scanner.h:
1129         * tools/scannerlexer.l:
1130         * tools/scannerparser.y:
1131         * tools/sourcescanner.c:
1132         * tools/sourcescanner.h:
1133         Split out the source scanner from the generator.
1134         Rename the symbols used in the scanner to use the gi_ prefix.
1135         This should make it possible to use the raw C parser from
1136         other programs.
1137
1138 2008-03-23  Johan Dahlin  <johan@gnome.org>
1139
1140         * tests/parser/Makefile.am (utility.gidl): 
1141         * tests/parser/utility-expected.gidl: 
1142         Pass in the gobject.gidl since we're defining a GObject.
1143
1144 2008-03-12  Johan Dahlin  <johan@gnome.org>
1145
1146         * relaxng/relaxng.rng:
1147         Add a releaxng in relaxng we can use to validate the relaxngs
1148         schemas
1149
1150 2008-03-12  Jürg Billeter  <j@bitron.ch>
1151
1152         * tools/scanner.c: (g_igenerator_new):
1153         * tools/scannerparser.y:
1154         Fix compiler warnings.
1155
1156 2008-03-12  Jürg Billeter  <j@bitron.ch>
1157
1158         * tools/scanner.c:
1159         * tools/scanner.h:
1160         * tools/scannerparser.y:
1161         Start fixing memory management in g-idl-scanner.
1162
1163 2008-03-12  Rob Taylor  <rob.taylor@codethink.co.uk>
1164
1165         * tools/gidlcompilercontext.c: (write_compiled):
1166         Fix critical warning when no shlib passed to g-idl-compiler.
1167
1168 2008-03-12  Johan Dahlin  <johan@gnome.org>
1169
1170         * tests/parser/utility-expected.gidl:
1171         * tests/parser/utility.h:
1172         Add a get_type-function, so the scanner actually
1173         parses it as an object.
1174         
1175 2008-03-12  Johan Dahlin  <johan@gnome.org>
1176
1177         * tools/gidlwriter.c (function_generate): Add missing trailing quote.
1178         Bad Philip!
1179
1180         * tests/parser/Foo-expected.gidl:
1181         * tests/parser/Makefile.am:
1182         * tests/parser/foo-object.h:
1183         * tests/parser/foo.c:
1184         * tests/parser/utility-expected.gidl:
1185         * tests/parser/utility.c:
1186         * tests/parser/utility.h:
1187
1188         Add a new gidl test. 'utility.gidl', which is used to be able
1189         to test external type references. Add a reference to UtilityObject*
1190         in the idl file.
1191
1192 2008-03-11  Johan Dahlin  <johan@gnome.org>
1193
1194         * tools/compiler.c:
1195         * tools/generate.c:
1196         Remove most global variables
1197
1198 2008-03-11  Philip Van Hoof  <me@pvanhoof.be>
1199  
1200         * tools/scannerlexer.l:
1201         * tools/scanner.c:
1202         * tests/parser/Foo-expected.gidl:
1203         * tests/parser/foo.c:
1204         * tests/parser/Makefile.am:
1205         * tests/parser/foo-object.h:
1206  
1207         Added a few extra tests. Which resulted in finding a few
1208         bugs. Which resulted in me fixing those bugs
1209
1210 2008-03-11  Rob Taylor  <rob.taylor@codethink.co.uk>
1211
1212         * tools/gidlcompilercontext.c: (g_idl_compiler_write_dir_entry),
1213         (g_idl_compiler_write_xref_entry), (g_idl_compiler_add_xref):
1214         Add some comments for strings into generated output for
1215         easier debugging.
1216
1217 2008-03-11  Rob Taylor  <rob.taylor@codethink.co.uk>
1218
1219         * tools/gidlcompilercontext.c: (write_compiled):
1220         Write out the shlibs variable before writing out the strings
1221         length. Fixes compiler warning when using '-l' flag with
1222         g-idl-compiler
1223
1224 2008-03-11  Johan Dahlin  <johan@gnome.org>
1225
1226         * tests/parser/Foo-expected.gidl:
1227         * tests/parser/foo-object.h:
1228         * tools/scanner.c:
1229         * tools/scanner.h:
1230         * tools/scannerlexer.l:
1231         Add support for parsing return arguments. Add support for
1232         caller-owns return types.
1233         Patch by Philip Van Hoof.
1234         
1235         * tools/scannerparser.y:
1236         Remove parsing of the @deprecated syntax used in headers.
1237         We will support gtk-doc deprecation in the future instead.
1238
1239 2008-03-11  Johan Dahlin  <johan@gnome.org>
1240
1241         * tools/compiler.c (main): Coding style fixes
1242
1243 2008-03-10  Johan Dahlin  <johan@gnome.org>
1244
1245         * configure.ac:
1246         Add GCOV_LIBS to GILIBS
1247
1248 2008-03-10  Johan Dahlin  <johan@gnome.org>
1249
1250         * tests/parser/Foo-expected.gidl:
1251         * tests/parser/foo.c:
1252         Rename null-ok to direction=out
1253
1254 2008-03-10  Philip Van Hoof  <me@pvanhoof.be>
1255
1256         reviewed and extensively tested by Johan
1257
1258         * tests/parser/Foo-expected.gidl:
1259         * tests/parser/foo-object.h:
1260         * tests/parser/foo.c:
1261         * tools/gidlnode.c:
1262         * tools/gidlnode.h:
1263         * tools/gidlwriter.c:
1264         * tools/scanner.c:
1265         * tools/scanner.h:
1266         * tools/scannerlexer.l:
1267         * tools/scannerparser.y:
1268
1269         Add support for scanning for gtk-doc comments inside
1270         C source files. Add tests
1271
1272 2008-03-10  Johan Dahlin  <johan@gnome.org>
1273
1274         * tests/parser/Makefile.am:
1275         * tests/parser/foo.c:
1276         * tools/scanner.c:
1277         * tools/scanner.h:
1278         * tools/scannerparser.y:
1279         Add an api to lex filenames.
1280         Lex all source .c files passed in on the command line.
1281         Scan sources in a test and a couple of private structures
1282         which should not be included in the generated gidl
1283
1284 2008-03-10  Johan Dahlin  <johan@gnome.org>
1285
1286         * tests/invoke/Makefile.am: Make the generated metadata 
1287         depend on the g-idl-compiler
1288
1289 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
1290
1291         * tools/gidlmodule.c
1292         * tools/gidlmodule.h
1293         * tools/gidlnode.c
1294         * tools/gidlnode.h
1295         Remove the old g-idl-compiler code.
1296
1297
1298 2008-02-22  Mark Doffman  <mark.doffman@codethink.co.uk>
1299
1300         * tools/quote-file.sh
1301         * tools/compiler.c
1302         * tools/generate.c
1303         Move to using the 'C' struct compiler code.
1304
1305 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
1306
1307         * girepository/ginfo.c
1308         * tools/generate.c
1309         Change the way that external references with no namespace
1310         are dealt with. External references with no namespace
1311         are placed into the XML as-if they are a local reference.
1312         This is temporary, but helps with roundtrip tests.
1313
1314 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
1315
1316         * girepository/ginfo.c
1317         Add the ability to get the value of a constant of
1318         type TYPE_TAG_SYMBOL. In the case of a symbol the value
1319         is provided as a string.
1320
1321         This would deal properly with:
1322         typedef char* random;
1323         const random = "A string";
1324
1325 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
1326
1327         * girepository/ginfo.c
1328         * girepository/girepository.h
1329         * tools/generate.c
1330         Add a function to check if an enum is registered or not.
1331         Previously anything testing this relied on the g-type
1332         string offset having a value of 0.
1333
1334         * girepository/gmetadata.c
1335         * girepository/gmetadata.h
1336         * tools/generate.c
1337         Remove unneccesary or erroneous checks. There were two
1338         metadata validation checks which made sure that the blob
1339         sizes were the same as some magic numbers compiled into the code.
1340         This is wrong as it breaks any forwards compatibility that may
1341         be possible.
1342
1343         Checks were also present that made sure that unregistered type
1344         blobs had a value of 0 in the g-type offset field. This is
1345         unneccessary. If a type blob is unregistered then any value
1346         in its g-type field is simply invalid.
1347
1348 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
1349
1350         * girepository/ginfo.c
1351         * girepository/gmetadata.c
1352         * girepository/gmetadata.h
1353
1354           Change the metadata format to have a standard header
1355           for all the type blobs. Merge the SimpleTypeBlob
1356           and InterfaceTypeBlob into a union. A union of these
1357           two blobs existed previously but was not explicit
1358           in the metadata format.
1359
1360 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
1361
1362         * tools/gidlcompilercontext.c
1363         * tools/gidlcompilercontext.h
1364         * tools/gidlcompilerentrynode.c
1365         * tools/gidlcompilerentrynode.h
1366         * tools/gidlcompilertypenode.c
1367         * tools/gidlcompilertypenode.h
1368
1369         Add code to compile a tree of GIdlNodes to
1370         a 'C' struct representing the metadata.
1371         This is to aid cross-compiling. Previously
1372         the g-idl-compiler created a binary blob with
1373         data written in the byte order and alignment
1374         of the tool rather than the intended target.
1375
1376         Cleaned up and improved by Johan and Robert :-)
1377
1378 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
1379
1380         * girepository/ginvoke.c
1381         * girepository/girepository.h
1382         * girepository/gmetadata.c
1383         * girepository/gmetadata.h
1384         * tools/generate.c
1385         * tools/gidlparser.c
1386         Modify TYPE_TAG_INTERFACE to TYPE_TAG_SYMBOL
1387         to avoid confusion with the interface blob.
1388
1389         * tools/generate.c
1390         * tools/gidlparser.c
1391         Remove magic numbers and replace with type-tag
1392         enumeration symbols.
1393
1394         * girepository/gmetadata.c
1395         Add validate declaration.
1396
1397 2008-03-10  Jürg Billeter  <j@bitron.ch>
1398
1399         * tools/gidlparser.c: (parse_type_internal):
1400         * tools/scannerlexer.l:
1401         * tools/scannerparser.y:
1402         Support C99 _Bool type in scanner.
1403
1404 2008-03-10  Jürg Billeter  <j@bitron.ch>
1405
1406         * tests/parser/Foo-expected.gidl:
1407         * tests/parser/foo-object.h:
1408         * tests/parser/foo.c: (foo_enum_method):
1409         * tools/scanner.c: (g_igenerator_process_function_symbol):
1410         Don't skip functions that are defined in the namespace of a type
1411         that doesn't support methods, as for example enums.
1412
1413 2008-03-10  Johan Dahlin  <johan@gnome.org>
1414
1415         * gidl.dtd: Remove, we're using relaxng for now
1416
1417         * tests/parser/Foo-expected.gidl:
1418         * tests/parser/foo-object.h:
1419         * tests/parser/foo.c:
1420         Rename the enum/flags get_type functions to include the whole type.
1421
1422 2008-03-08  Marc-Andre Lureau  <marcandre.lureau@gmail.com>
1423
1424         * tools/gidlwriter.c (enum_generate): added "type-name",
1425         "get-type" and "deprecated" missing arguments.
1426         * tests/parser/Foo-expected.gidl:
1427         * tests/parser/foo-object.h: test enum type, and no type.
1428
1429 2008-03-06  Johan Dahlin  <jdahlin@async.com.br>
1430
1431         * configure.ac:
1432         Consistent checks, add missing 'test'
1433
1434 2008-03-05  Havoc Pennington  <hp@redhat.com>
1435
1436         * configure.ac: Take advantage of a libffi.pc if one exists, as it
1437         does on Fedora 8. Make libffi a hard requirement, since it was in
1438         practice anyway (was not really conditional in the code or
1439         makefile, only in configure).
1440
1441 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
1442
1443         reviewed by: Rob Taylor  <rob.taylor@codethink.co.uk>
1444         reviewed by: Johan Dahlin  <johan@gnome.org>
1445
1446         * tests/Makefile.am:
1447         * tests/roundtrips.sh:
1448         Modify the roundtrips test so that they do not use the
1449         --raw option of the gidl compiler but instead compile a
1450         shared library to use with g_module.
1451
1452         * tests/invoke/Makefile.am:
1453         * tests/invoke/invoke.c:
1454         Modify the invoke tests to build a shared library rather
1455         than use the --raw option.
1456
1457         * tests/invoke/invoke-namespace-find.sh: Removed:
1458         Noone knows why this was here, so removed.
1459
1460 2008-02-19  Rob Taylor  <rob.taylor@codethink.co.uk>
1461
1462         * tools/scanner.c: (g_igenerator_process_function_symbol):
1463         Move g_idl_node_can_have_member test later, as it broke spotting
1464         get_type's for nodes that can't have members.
1465
1466 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
1467
1468         * tools/gidlnode.h:
1469         * tools/gidlnode.c: (g_idl_node_can_have_member):
1470         Add g_idl_node_can_have_member.
1471
1472         * tools/scanner.c: (g_igenerator_process_function_symbol):
1473         Use g_idl_node_can_have_member to test if we should add a function
1474         as a member of the type node.
1475
1476 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
1477
1478         * gidl/GLib.gidl: Renamed to gidl/gobject-2.0.gidl:
1479         * gidl/Makefile.am:
1480         * tests/parser/Makefile.am:
1481         Rename GLib.gidl to gobject-2.0.gidl and install in /usr/share/gidl.
1482
1483 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
1484
1485         * tools/scanner.c: (main):
1486         Ignore -pthread when passed to g-idl-scanner.
1487
1488 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
1489
1490         * tools/grealpath.h: Added:
1491         * tools/scanner.c: (main):
1492         * tools/scannerlexer.l:
1493         * tools/Makefile.am:
1494         Always use absolute paths with symbolic links resolved when
1495         comparing filenames.
1496
1497 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
1498
1499         * gobject-introspection.pc.in:
1500         Provide variables for g-idl-parser, scanner and compiler in the
1501         pkgconfig file.
1502
1503 2008-02-13  Rob Taylor  <rob.taylor@codethink.co.uk>
1504
1505         * gcov.mak:
1506         * girepository/Makefile.am:
1507         * tools/Makefile.am:
1508         Rename GCOV_SOURCES to GCOVSOURCES to top automake complaining.
1509
1510 2008-02-10  Johan Dahlin  <johan@gnome.org>
1511
1512         * tests/parser/Foo-expected.gidl:
1513         * tests/parser/foo-object.h:
1514         * tests/parser/foo.c: (foo_boxed_copy), (foo_boxed_free),
1515         (foo_boxed_get_type), (foo_boxed_new), (foo_boxed_method):
1516         Add boxed test.
1517
1518 2008-02-10  Johan Dahlin  <johan@gnome.org>
1519
1520         * tests/parser/Foo-expected.gidl:
1521         * tests/parser/foo-object.h:
1522         * tests/parser/foo.c: (foo_enum_get_type), (foo_flags_get_type):
1523         Add enum and flags test.
1524
1525 2008-02-10  Johan Dahlin  <johan@gnome.org>
1526
1527         * Makefile.am:
1528         * configure.ac:
1529         * girepository/Makefile.am:
1530         Make 'make distcheck' work again.
1531
1532 2008-02-10  Johan Dahlin  <johan@gnome.org>
1533
1534         * m4/Makefile.am (EXTRA_DIST): its called as-compiler-flag.m4,
1535         not as-compiler.m4.
1536
1537         * tests/parser/Makefile.am: Only create Foo.gidl when running make
1538         check, eg exclude it from BUILT_SOURCES.
1539
1540 2008-02-08  Rob Taylor  <rob.taylor@codethink.co.uk>
1541
1542         * Makefile.am:
1543         * configure.ac:
1544         * gcov.mak: Added:
1545         * girepository/Makefile.am:
1546         * m4/Makefile.am: Added:
1547         * m4/as-compiler-flag.m4: Added:
1548         * m4/gcov.m4: Added:
1549         * tools/Makefile.am:
1550         Add ability to generate a coverage report.
1551         Adds configure option --enable-gcov and make rule 'check-coverage'.
1552
1553 2008-02-08  Rob Taylor  <rob.taylor@codethink.co.uk>
1554
1555         * Makefile.am:
1556         * configure.ac:
1557         * gidl/Makefile.am: Added:
1558         * girepository/Makefile.am: Added:
1559         * src/Makefile.am: Renamed to tools/Makefile.am:
1560         * src/compiler.c: Renamed to tools/compiler.c:
1561         * src/g-idl-offsets.pl: Renamed to tools/g-idl-offsets.pl:
1562         * src/generate.c: Renamed to tools/generate.c:
1563         * src/gidlmodule.c: Renamed to tools/gidlmodule.c:
1564         * src/gidlmodule.h: Renamed to tools/gidlmodule.h:
1565         * src/gidlnode.c: Renamed to tools/gidlnode.c:
1566         * src/gidlnode.h: Renamed to tools/gidlnode.h:
1567         * src/gidlparser.c: Renamed to tools/gidlparser.c:
1568         * src/gidlparser.h: Renamed to tools/gidlparser.h:
1569         * src/gidlwriter.c: Renamed to tools/gidlwriter.c:
1570         * src/gidlwriter.h: Renamed to tools/gidlwriter.h:
1571         * src/ginfo.c: Renamed to girepository/ginfo.c:
1572         * src/ginvoke.c: Renamed to girepository/ginvoke.c:
1573         * src/girepository.c: Renamed to girepository/girepository.c:
1574         * src/girepository.h: Renamed to girepository/girepository.h:
1575         * src/gmetadata.c: Renamed to girepository/gmetadata.c:
1576         * src/gmetadata.h: Renamed to girepository/gmetadata.h:
1577         * src/scanner.c: Renamed to tools/scanner.c:
1578         * src/scanner.h: Renamed to tools/scanner.h:
1579         * src/scannerlexer.l: Renamed to tools/scannerlexer.l:
1580         * src/scannerparser.y: Renamed to tools/scannerparser.y:
1581         * tests/invoke/Makefile.am:
1582         Split src/ into girepository/ and tools/
1583
1584         * Makefile.am:
1585         * configure.ac:
1586         * girepository/Makefile.am:
1587         * tests/Makefile.am:
1588         * tests/invoke/Makefile.am:
1589         * tests/parser/Makefile.am:
1590         * tests/roundtrips.sh:
1591         * tools/Makefile.am:
1592         Make distcheck work.
1593
1594 2008-02-04  Rob Taylor  <rob.taylor@codethink.co.uk>
1595
1596         * tests/invoke/invoke.c: (main):
1597         * tests/invoke/testfns.c: (test6), (test7):
1598         * tests/invoke/testfns.xml:
1599         Add tests for invokation with a GList argument.
1600         Also tests caller-owns return values.
1601
1602 2008-02-04  Rob Taylor  <robtaylor@floopily.org>
1603
1604         * src/ginfo.c:
1605         Add some documentation for GICallableInfo
1606
1607 2008-02-01  Mark Doffman  <mark.doffman@codethink.co.uk>
1608
1609         * gidl.dtd:
1610         Correct syntax errors in the DTD file.
1611         * relaxng/api.xml:
1612         * relaxng/c-types.xml:
1613         * relaxng/g-types.xml:
1614         * relaxng/util.xml:
1615         Add a RelaxNG specification for the GObject Introspection XML data.
1616         The Specification has validated all of the test files.
1617
1618 2008-01-25  Rob Taylor  <robtaylor@floopily.org>
1619
1620         * tests/roundtrips.sh:
1621         * tests/struct.test:
1622         Add roundtrip tests for structs.
1623
1624 2008-01-11  Johan Dahlin  <johan@gnome.org>
1625
1626         * src/scanner.c (g_igenerator_process_function_symbol):
1627         Refactor out g_idle_node_add_member.
1628         (create_node_from_gtype, create_node_from_ctype):
1629         Use case instead of if...else
1630         (get_type_from_type_id):
1631         Rename to create_node_from_gtype
1632         (get_type_from_ctype):
1633         Rename to create_node_from_ctype
1634
1635         Rename ginode -> node, gitype -> type, gifunc -> func.
1636
1637         * src/gidlnode.c (g_idl_node_add_member, g_idl_node_cmp):
1638         Two new functions, refactor out of scanner.c
1639
1640         * src/scanner.c: (g_igenerator_process_function_symbol):
1641         * src/scannerlexer.l:
1642         Do not save the content of the deprecated variable, only
1643         if it's set or not.
1644
1645 2008-01-11  Johan Dahlin  <johan@gnome.org>
1646
1647         * tests/parser/foo-object.h: Add a couple of comment parser tests.
1648
1649 2008-01-11  Jürg Billeter  <j@bitron.ch>
1650
1651         * src/scannerlexer.l:
1652         Fix GTK-Doc parsing.
1653
1654 2008-01-11  Jürg Billeter  <j@bitron.ch>
1655
1656         * src/scannerlexer.l:
1657         Fix GTK-Doc parsing.
1658
1659 2008-01-11  Jürg Billeter  <j@bitron.ch>
1660
1661         * src/scanner.c: (lookup_symbol):
1662         Return unresolved name if we find unknown symbol.
1663
1664 2008-01-11  Jürg Billeter  <j@bitron.ch>
1665
1666         * src/scanner.c: (g_igenerator_generate):
1667         Initialize GObject to fix scanning interface properties.
1668
1669         * tests/parser/Foo-expected.gidl:
1670         * tests/parser/foo-object.h:
1671         * tests/parser/foo.c: (foo_interface_get_type):
1672         Test interfaces with GObject prerequisite.
1673
1674         * tests/parser/Makefile.am:
1675         Set G_DEBUG=fatal_warnings to abort test on warnings and criticals.
1676
1677 2007-12-27  Johan Dahlin  <johan@gnome.org>
1678
1679         * src/scannerlexer.l:
1680         Parse gtk-doc comments.
1681
1682         * src/gidlwriter.c: (function_generate):
1683         Reorganize, avoid duplication and add support for
1684         writing deprecated functions.
1685
1686         * src/scannerparser.y:
1687         * src/scanner.h:
1688         Add new structure CDirective and functions to create/free them.
1689
1690         * src/scanner.c: (g_igenerator_process_function_symbol),
1691         (g_igenerator_process_unregistered_struct_typedef),
1692         (g_igenerator_process_struct_typedef),
1693         (g_igenerator_process_union_typedef),
1694         (g_igenerator_process_enum_typedef),
1695         (g_igenerator_process_function_typedef), (g_igenerator_add_symbol),
1696         (g_igenerator_start_preprocessor):
1697         Parse @deprecated directive for functions.
1698         Remove some more C99isms.
1699         Send in -C to cpp to avoid stripping comments.
1700
1701         * tests/parser/foo-object.h:
1702         * tests/parser/Foo-expected.gidl:
1703         Add deprecated directive
1704
1705 2007-12-27  Johan Dahlin  <johan@gnome.org>
1706
1707         * src/scannerlexer.l (intsuffix): Add emacs mode line and
1708         escape ' and " so it looks more like C.
1709
1710         * src/scanner.c:
1711         Unlink temporary file used.
1712
1713 2007-12-27  Johan Dahlin  <johan@gnome.org>
1714
1715         * src/scanner.c: (g_igenerator_new), (g_igenerator_free),
1716         (g_igenerator_start_preprocessor), (main):
1717         * src/scanner.h:
1718         * src/scannerparser.y:
1719         Plug a couple of simple memory leaks.
1720
1721 2007-12-27  Johan Dahlin  <johan@gnome.org>
1722
1723         * src/scanner.c: (g_igenerator_parse_macros),
1724         (g_igenerator_start_preprocessor), (g_igenerator_set_verbose),
1725         (main):
1726         * src/scanner.h:
1727         * src/scannerparser.y:
1728         * tests/parser/Makefile.am:
1729
1730         Improve error reporting, return when the preprocessor fails.
1731         Add a verbose parameter, to aid debugging.
1732         Revert to using a temporary file to communicate between the
1733         preprocessor and the parser, because we need to wait for
1734         the exit code from the pre-processor before starting to parse.
1735
1736 2007-12-16  Johan Dahlin  <jdahlin@async.com.br>
1737
1738         * src/Makefile.am: Rename clexer.l to scannerlexer.l and
1739         cparser.y to scannerparser.y
1740
1741 2007-12-11  Johan Dahlin  <johan@gnome.org>
1742
1743         * src/clexer.l:
1744         * src/cparser.y:
1745         * src/scanner.c: (g_igenerator_new):
1746         * src/scanner.h:
1747         Get rid of the global the_generator variable.
1748
1749 2007-12-10  Johan Dahlin  <johan@gnome.org>
1750
1751         * src/scanner.c (main): Add an output option,
1752         add checks for required parameters
1753
1754         * src/Makefile.am:
1755         set BUILD_SOURCES and CLEANFILES properly
1756
1757         * src/gidlwriter.c: (g_writer_write_inline), (g_writer_write),
1758         (g_writer_write_indent), (g_writer_write_unindent),
1759         (field_generate), (value_generate), (constant_generate),
1760         (property_generate), (function_generate), (vfunc_generate),
1761         (signal_generate), (interface_generate), (struct_generate),
1762         (union_generate), (boxed_generate), (enum_generate),
1763         (node_generate), (g_writer_write_module), (g_idl_writer_save_file):
1764         * src/gidlwriter.h:
1765         * src/scanner.c: (g_igenerator_generate):
1766         * src/scanner.h:
1767         * src/scannerwriter.c:
1768
1769         Refactor scannerwriter to only be tied to a GIdlModule and move
1770         it (again!) to gidlwriter.c. Change the writer function to take
1771         a filename.
1772
1773 2007-12-10  Johan Dahlin  <johan@gnome.org>
1774
1775         * src/Makefile.am:
1776         * src/scanner.c: (g_igenerator_generate):
1777         * src/scanner.h:
1778         * src/scannerwriter.c: (g_igenerator_write_inline),
1779         (g_igenerator_write), (g_igenerator_write_indent),
1780         (g_igenerator_write_unindent), (field_generate), (value_generate),
1781         (constant_generate), (property_generate), (function_generate),
1782         (vfunc_generate), (signal_generate), (interface_generate),
1783         (struct_generate), (union_generate), (boxed_generate),
1784         (enum_generate), (node_generate), (module_generate),
1785         (g_scanner_write_file):
1786
1787         Move the scanner gidl writing to a separate source file.
1788
1789 2007-12-10  Johan Dahlin  <johan@gnome.org>
1790
1791         * src/cparser.y:
1792         * src/scanner.c:
1793         * src/scanner.h:
1794         Move over all CType construction functions.
1795
1796         * tests/parser/Makefile.am:
1797         Be verbose when printing parsing tests results.
1798
1799 2007-12-10  Johan Dahlin  <johan@gnome.org>
1800
1801         * src/scanner.c (g_igenerator_start_preprocessor): Refactor
1802         preprocessor handling to here. Start cpp insteado of cc -E,
1803         always include -U__GNUC__, since it's specific to the preprocessor
1804         we use.
1805
1806         * tests/parser/Makefile.am (check-local): Silent diff and skip
1807         -U__GNUC__ which is always defined now
1808
1809 2007-12-10  Johan Dahlin,,,  <jdahlin@plasttroll>
1810
1811         reviewed by: <delete if not using a buddy>
1812
1813         * src/scanner.c: (g_igenerator_start_preprocessor), (main):
1814         * tests/parser/Makefile.am:
1815
1816 2007-12-09  Johan Dahlin  <johan@gnome.org>
1817
1818         * src/scanner.c:
1819         Use GOption for command line options.
1820         (g_igenerator_new, main): Simplify constructor and they way
1821         parameters are passed into it.
1822
1823         * src/cparser.y:
1824         * src/Makefile.am:
1825         * src/clexer.l:
1826         * src/cparser.y:
1827         * src/gen-introspect.c:
1828         * src/gen-introspect.h:
1829         * src/scanner.c:
1830         Rename gen-introspect.[ch] to scanner.[ch]
1831
1832 2007-12-09  Johan Dahlin  <johan@gnome.org>
1833
1834         * TODO: Update
1835
1836         * src/Makefile.am: Rename gen-introspect to g-idl-scanner,
1837         don't make the repository library and the other utilites link against
1838         gthread-2.0
1839
1840         * src/gen-introspect.c: (g_igenerator_create_object),
1841         (g_igenerator_create_interface), (g_igenerator_create_boxed),
1842         (g_igenerator_create_enum), (g_igenerator_create_flags),
1843         (g_igenerator_process_module_symbol),
1844         (g_igenerator_process_module), (g_igenerator_generate), (main):
1845         * src/gen-introspect.h:
1846         Refactor g_igenerator_process_types into smaller pieces.
1847
1848         * tests/parser/Makefile.am:
1849         Depend on the gen-introspect binary
1850
1851 2007-12-09  Johan Dahlin  <johan@gnome.org>
1852
1853         * src/gen-introspect.c (g_igenerator_process_types):
1854         Break into smaller pieces, one for each generated node type.
1855
1856 2007-12-08  Johan Dahlin  <johan@gnome.org>
1857
1858         * src/gen-introspect.c: (g_igenerator_process_types),
1859         (g_igenerator_add_module):
1860         * tests/parser/Foo-expected.gidl:
1861         * tests/parser/foo-object.h:
1862         * tests/parser/foo.c: (foo_subobject_class_init),
1863         (foo_subobject_init):
1864
1865         Add a subobject test and make sure to register defined classes
1866         in the lookup symbol hash table.
1867
1868 2007-12-08  Johan Dahlin  <johan@gnome.org>
1869
1870         * gidl/GLib.gidl:
1871         * src/Makefile.am:
1872         * src/gen-introspect.c: (g_igenerator_new), (lookup_symbol),
1873         (g_igenerator_process_types), (g_igenerator_add_module),
1874         (g_igenerator_add_include_idl), (main):
1875         * src/gen-introspect.h:
1876         * tests/parser/Makefile.am:
1877         * tests/parser/Foo-expected.gidl:
1878
1879         Change the gen-introspect to generate namespaced module names,
1880         such as GLib.Object instead of GObject.
1881         Add a GLib.gidl which introduces GLib.Object and GLib.InitiallyUnowned,
1882         add a --include-idl parameter to gen-introspect,
1883         and update the parser test.
1884
1885 2007-12-08  Johan Dahlin  <johan@gnome.org>
1886
1887         * src/gen-introspect.c:
1888         Move main to the end of the file and attempt to make it valid
1889         ansi c.
1890
1891         * tests/parser/Makefile.am (BUILT_SOURCES): Remove .repo here,
1892         we're not quite ready to generate metadata yet.
1893
1894         * tests/parser/:
1895         * configure.ac:
1896
1897         Add a simple gen-introspect parser test
1898
1899 2007-12-06  Gustavo J. A. M. Carneiro  <gjc@gnome.org>
1900
1901         reviewed by: Johan Dahlin  <johan@gnome.org>
1902
1903         * configure.ac:
1904         * gobject-introspection.pc.in:
1905         * src/Makefile.am:
1906         * src/compiler.c: (format_output), (write_out_metadata), (main):
1907         * src/gen-introspect.c: (main):
1908         * src/gen-introspect.h:
1909         * src/generate.c: (write_callable_info), (write_repository),
1910         (load_metadata), (main):
1911         * src/gidlmodule.c: (g_idl_module_new),
1912         (g_idl_module_build_metadata):
1913         * src/gidlmodule.h:
1914         * src/gidlparser.c: (start_element_handler):
1915         * src/ginfo.c: (g_info_new), (g_info_from_entry),
1916         (g_base_info_get_name), (g_base_info_get_namespace),
1917         (g_base_info_is_deprecated), (g_base_info_get_annotation),
1918         (g_base_info_get_metadata), (g_function_info_get_symbol),
1919         (g_function_info_get_flags), (g_function_info_get_property),
1920         (g_function_info_get_vfunc), (signature_offset), (g_type_info_new),
1921         (g_callable_info_may_return_null),
1922         (g_callable_info_get_caller_owns), (g_callable_info_get_n_args),
1923         (g_callable_info_get_arg), (g_arg_info_get_direction),
1924         (g_arg_info_is_return_value), (g_arg_info_is_dipper),
1925         (g_arg_info_is_optional), (g_arg_info_may_be_null),
1926         (g_arg_info_get_ownership_transfer), (g_type_info_is_pointer),
1927         (g_type_info_get_tag), (g_type_info_get_param_type),
1928         (g_type_info_get_interface), (g_type_info_get_array_length),
1929         (g_type_info_is_zero_terminated),
1930         (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
1931         (g_error_domain_info_get_quark), (g_error_domain_info_get_codes),
1932         (g_value_info_get_value), (g_field_info_get_flags),
1933         (g_field_info_get_size), (g_field_info_get_offset),
1934         (g_registered_type_info_get_type_name),
1935         (g_registered_type_info_get_type_init),
1936         (g_struct_info_get_n_fields), (g_struct_info_get_field),
1937         (g_struct_info_get_n_methods), (g_struct_info_get_method),
1938         (find_method), (g_struct_info_find_method),
1939         (g_enum_info_get_n_values), (g_enum_info_get_value),
1940         (g_object_info_get_parent), (g_object_info_get_type_name),
1941         (g_object_info_get_type_init), (g_object_info_get_n_interfaces),
1942         (g_object_info_get_interface), (g_object_info_get_n_fields),
1943         (g_object_info_get_field), (g_object_info_get_n_properties),
1944         (g_object_info_get_property), (g_object_info_get_n_methods),
1945         (g_object_info_get_method), (g_object_info_find_method),
1946         (g_object_info_get_n_signals), (g_object_info_get_signal),
1947         (g_object_info_get_n_vfuncs), (g_object_info_get_vfunc),
1948         (g_object_info_get_n_constants), (g_object_info_get_constant),
1949         (g_interface_info_get_n_prerequisites),
1950         (g_interface_info_get_prerequisite),
1951         (g_interface_info_get_n_properties),
1952         (g_interface_info_get_property), (g_interface_info_get_n_methods),
1953         (g_interface_info_get_method), (g_interface_info_find_method),
1954         (g_interface_info_get_n_signals), (g_interface_info_get_signal),
1955         (g_interface_info_get_n_vfuncs), (g_interface_info_get_vfunc),
1956         (g_interface_info_get_n_constants),
1957         (g_interface_info_get_constant), (g_property_info_get_flags),
1958         (g_signal_info_get_flags), (g_signal_info_get_class_closure),
1959         (g_signal_info_true_stops_emit), (g_vfunc_info_get_flags),
1960         (g_vfunc_info_get_offset), (g_vfunc_info_get_signal),
1961         (g_constant_info_get_value), (g_union_info_get_n_fields),
1962         (g_union_info_get_field), (g_union_info_get_n_methods),
1963         (g_union_info_get_method), (g_union_info_is_discriminated),
1964         (g_union_info_get_discriminator_offset),
1965         (g_union_info_get_discriminator):
1966         * src/ginvoke.c: (g_function_info_invoke):
1967         * src/girepository.c: (g_irepository_register),
1968         (g_irepository_unregister), (g_irepository_get_default),
1969         (count_interfaces), (g_irepository_get_n_infos), (find_interface),
1970         (g_irepository_get_info), (g_irepository_find_by_name),
1971         (g_irepository_get_shared_library),
1972         (g_irepository_build_search_path), (g_irepository_register_file),
1973         (g_irepository_error_quark):
1974         * src/girepository.h:
1975         * src/gmetadata.c: (g_metadata_get_dir_entry),
1976         (g_metadata_check_sanity), (validate_header),
1977         (validate_array_type_blob), (validate_iface_type_blob),
1978         (validate_param_type_blob), (validate_error_type_blob),
1979         (validate_type_blob), (validate_arg_blob),
1980         (validate_signature_blob), (validate_function_blob),
1981         (validate_callback_blob), (validate_constant_blob),
1982         (validate_value_blob), (validate_field_blob),
1983         (validate_property_blob), (validate_signal_blob),
1984         (validate_vfunc_blob), (validate_struct_blob),
1985         (validate_enum_blob), (validate_object_blob),
1986         (validate_interface_blob), (validate_errordomain_blob),
1987         (validate_union_blob), (validate_blob), (validate_directory),
1988         (validate_annotations), (g_metadata_validate), (_g_metadata_init),
1989         (g_metadata_new_from_memory), (g_metadata_new_from_const_memory),
1990         (g_metadata_new_from_mapped_file), (g_metadata_free),
1991         (g_metadata_set_module), (g_metadata_get_namespace):
1992         * src/gmetadata.h:
1993         * tests/Makefile.am:
1994         * tests/invoke/Makefile.am:
1995         * tests/invoke/invoke-namespace-find.sh:
1996         * tests/invoke/invoke.c: (main):
1997
1998         Add a namespace/shared library mapping. fixes #313268.
1999
2000 2007-12-03  Johan Dahlin  <johan@gnome.org>
2001
2002         * src/gidlparser.c (parse_type_internal): Disable char/gchar and
2003         guchar for now.
2004
2005 2007-11-30  Jürg Billeter  <j@bitron.ch>
2006
2007         * configure.ac:
2008         * src/Makefile.am:
2009         * src/clexer.l:
2010         * src/cparser.y:
2011         * src/gen-introspect.c: (g_idl_node_cmp), (g_igenerator_new),
2012         (g_igenerator_write_inline), (g_igenerator_write),
2013         (g_igenerator_write_indent), (g_igenerator_write_unindent),
2014         (field_generate), (value_generate), (constant_generate),
2015         (property_generate), (function_generate), (vfunc_generate),
2016         (signal_generate), (interface_generate), (struct_generate),
2017         (union_generate), (boxed_generate), (enum_generate),
2018         (node_generate), (module_generate), (get_type_from_type_id),
2019         (str_replace), (g_igenerator_process_properties),
2020         (g_igenerator_process_signals), (g_igenerator_process_types),
2021         (get_type_from_ctype), (g_igenerator_process_function_symbol),
2022         (g_igenerator_process_unregistered_struct_typedef),
2023         (g_igenerator_process_struct_typedef),
2024         (g_igenerator_process_union_typedef),
2025         (g_igenerator_process_enum_typedef),
2026         (g_igenerator_process_function_typedef),
2027         (g_igenerator_process_constant), (g_igenerator_process_symbols),
2028         (g_igenerator_add_symbol), (g_igenerator_is_typedef),
2029         (g_igenerator_generate), (main), (csymbol_new),
2030         (csymbol_get_const_boolean), (ctype_new), (ctype_copy),
2031         (cbasic_type_new), (ctypedef_new), (cstruct_new), (cunion_new),
2032         (cenum_new), (cpointer_new), (carray_new), (cfunction_new),
2033         (eat_hspace), (eat_line), (read_identifier),
2034         (g_igenerator_parse_macros):
2035         * src/gen-introspect.h:
2036
2037         Import gen-introspect to generate introspection information by
2038         parsing C headers.
2039
2040 2007-11-30  Jürg Billeter  <j@bitron.ch>
2041
2042         * src/gidlnode.c: (g_idl_node_new): support creating callback nodes
2043
2044 2007-11-30  Jürg Billeter  <j@bitron.ch>
2045
2046         * src/gidlparser.c: (end_element_handler): Don't leave requires
2047         state too early.
2048
2049 2007-11-29  Johan Dahlin  <johan@gnome.org>
2050
2051         * src/gidlparser.c (parse_type_internal): Add char,
2052         gchar and guchar to the builtin types.
2053
2054 2007-11-26  Johan Dahlin  <johan@gnome.org>
2055
2056         * src/ginfo.c: (g_object_info_get_type_name),
2057         (g_object_info_get_type_init):
2058         * src/girepository.c: (g_irepository_is_registered):
2059         * src/girepository.h:
2060
2061         Add g_object_info_get_type_name, g_object_info_get_type_init and
2062         g_irepository_is_registered.
2063
2064 2006-08-14  Jürg Billeter  <j@bitron.ch>
2065
2066       * src/gidlparser.c: (end_element_handler): Don't leave
2067         namespace and implements states too early.
2068         Fixes #351264
2069
2070 2007-11-26  Johan Dahlin  <johan@gnome.org>
2071
2072         * src/gmetadata.c (validate_struct_blob):
2073         pass blob_type to validate_function_blob instead of
2074         hard-coding BLOB_TYPE_STRUCT.
2075
2076         Patch by Torsten Schoenfeld, fixes #314190
2077
2078 2006-10-03  Torsten Schoenfeld  <tsch@cvs.gnome.org>
2079
2080         * src/compiler.c, src/generate.c, src/gidlnode.c,
2081         src/gidlparser.c, src/ginfo.c, src/girepository.c,
2082         tests/invoke/invoke.c, test/invoke/testfns.c: Hush compiler
2083         warnings about return values, signedness mismatches, unused
2084         variables, and unhandles enum values in switch statements.
2085
2086         * tests/invoke/Makefile.am: Don't install the invoke test program.
2087         Add -I ../../src to the cflags used for the test functions files.
2088
2089 2005-08-31  Torsten Schoenfeld  <tsch@cvs.gnome.org>
2090
2091         * src/girepository.h: Export g_invoke_error_quark.
2092
2093 2005-08-31  Torsten Schoenfeld  <tsch@cvs.gnome.org>
2094
2095         * src/ginvoke.c: Remove the fallback implementation of
2096         g_function_info_invoke since we now formally depend on libffi.
2097
2098 2005-07-25  Matthias Clasen  <mclasen@redhat.com>
2099
2100         * src/Makefile, tests/Makefile, tests/invoke/Makefile:
2101         Remove these files from cvs, as they are now generated.
2102
2103         * src/gmetadata.c (validate_iface_type_blob): Don't
2104         complain if blob->pointer is not set, since that
2105         happens for enum and flag types.  (#308935, Gustavo
2106         Carneiro)
2107
2108         * Commit an autoconf-conversion patch by
2109         Gustavo Carneiro (#308708)
2110
2111 2005-05-24  Matthias Clasen  <mclasen@redhat.com>
2112
2113         * src/compiler.c (main): Use it here to validate
2114         the generated metadata.
2115
2116         * src/gmetadata.[hc]: Add code to validate a
2117         metadata blob.
2118
2119         * metadata-format.txt: Updates
2120
2121 2005-05-22  Matthias Clasen  <mclasen@redhat.com>
2122
2123         * tests/*: Add struct offsets to field and vfunc
2124         elements.
2125
2126         * src/generate.c (write_vfunc_info): Write offset
2127         information for vfuncs.
2128
2129         * src/gidlnode.c (g_idl_node_build_metadata): Write
2130         the struct offsets into the metadata.
2131
2132         * src/gidlparser.c: Parse the offset attributes of
2133         field and vfunc elements.
2134
2135         * src/gidlnode.h: Add offset members to field and
2136         vfunc nodes.
2137
2138 2005-05-21  Matthias Clasen  <mclasen@redhat.com>
2139
2140         * TODO: Updates.
2141
2142         * gidl.dtd: Updates.
2143
2144         * src/g-idl-offsets.pl: A perl script which reads a .gidl
2145         file, creates, compiles and runs a C file, and folds the
2146         resulting struct offsets back into the .gidl file.
2147
2148 2005-05-20  Matthias Clasen  <mclasen@redhat.com>
2149
2150         * src/gidlparser.c (start_field): Make fields in objects
2151         work.
2152
2153         * src/gidlmodule.c: Include string.h
2154
2155         * TODO: Updates.
2156         :
2157
2158         * metadata-format.txt: Cleanup basic types.
2159         * src/*: Adapt to the changes.
2160         * tests/*: Adapt to the changes.
2161         * examples/gdk-pixbuf.gidl: Adapt to the changes.
2162
2163         * src/gidlnode.c (g_idl_node_get_size): Report the correct
2164         size for enum blobs.
2165         (g_idl_node_get_full_size): Report the correct size for
2166         function blobs.
2167
2168         * src/gidlmodule.c (g_idl_module_build_metadata): Add some
2169         error checking for blob sizes.
2170
2171 2005-05-19  Matthias Clasen  <mclasen@redhat.com>
2172
2173         * src/gidlnode.c (g_idl_node_build_metadata): Correctly handle
2174         interface types for which is_pointer is FALSE, e.g. enums.
2175
2176         * src/gidlnode.c (g_idl_node_get_full_size)
2177         * src/gidlparser.c (parse_type_internal):
2178         * src/generate.c (write_type_info): Support unspecialized
2179         lists, hashtables and errors. Also emit a '*' after these.
2180
2181         * TODO: Updates
2182
2183 2005-05-17  Matthias Clasen  <mclasen@redhat.com>
2184
2185         * TODO: Updates
2186
2187         * metadata-format.txt: Cleanups by Maciej Katafiasz.
2188
2189 2005-05-15  Matthias Clasen  <mclasen@redhat.com>
2190
2191         * src/*.c: Change the directory to be addressed by
2192         1-based indexes, and use an index of zero to mean
2193         'no object'.
2194
2195 2005-05-15  Matthias Clasen  <mclasen@redhat.com>
2196
2197         * tests/roundtrips.sh (SIMPLE_TESTS): Add union.test.
2198
2199         * tests/union.test: Add a union test.
2200
2201         * src/generate.c: Handle unions.
2202
2203         * src/girepository.h:
2204         * src/ginfo.c: Add GIUnionInfo and functions to access it.
2205
2206         * src/gidlnode.c: Handle GIdlNodeUnion nodes.
2207
2208         * src/gidlparser.c (start_union): Parse <union> elements.
2209
2210         * src/gidlnode.h: Add a GIdlNodeUnion.
2211
2212         * gidl.dtd: Add a <union> element.
2213
2214         * src/gmetadata.c (g_metadata_check_sanity): Check
2215         union_blob_size.
2216
2217         * src/gmetadata.h: Add union_blob_size to Header,
2218         add a UnionBlob.
2219
2220         * metadata-format.txt: Add a UnionBlob.
2221
2222 2005-05-13  Matthias Clasen  <mclasen@redhat.com>
2223
2224         * tests/*: Update testcases.
2225
2226         * src/generate.c (write_callable_info): Don't forget to
2227         write transfer and null-ok attributes for return types
2228         and parameters.
2229
2230         * src/girepository.h:
2231         * src/ginfo.c (g_callable_info_may_return_null):
2232         New function to find out if a function may return NULL.
2233
2234         * src/compiler.c (format_output): Make the generated
2235         C code compile.
2236
2237         * README: Point to a recent libffi snapshot.
2238
2239         * tests/invoke/*: Some invoke tests.
2240
2241         * src/Makefile: Add ginvoke.c and the necessary
2242         libffi information.
2243
2244         * src/girepository.h (g_function_info_invoke): Add
2245         a GError argument.
2246
2247         * src/ginvoke.c (g_function_info_invoke): Initial
2248         implementation of invoke functionality based on libffi.
2249
2250         * src/gidlnode.c (g_idl_node_build_metadata): Pass the
2251         strings and types hash tables in the right order when
2252         recursing.
2253         (find_entry_node): Free the name parts.
2254
2255 2005-05-12  Johan Dahlin  <johan@gnome.org>
2256
2257         * src/generate.c: Generate consistent end tags.
2258
2259         * tests/*: Update
2260
2261 2005-05-12  Matthias Clasen  <mclasen@redhat.com>
2262
2263         * TODO: Updates
2264
2265         * src/gidlparser.c (start_function): Actually add
2266         methods to objects.  (Steven Walter)
2267
2268         * src/girepository.h:
2269         * src/ginfo.c: Rename Transfer and Direction to
2270         GITransfer and GIDirection. (Torsten Schoenfeld)
2271
2272         * tests/*: Make tests work with the changes in name
2273         handling.
2274
2275         * src/gidlnode.c (find_entry_node): Parse qualified
2276         names and generate xref nodes for them if needed. Don't
2277         require all modules to be loaded any more.
2278
2279         * src/gidlmodule.c (g_idl_module_build_metadata): Choke
2280         on '.' in names.
2281
2282         * src/ginfo.c (g_object_info_get_parent): Return NULL
2283         if blob->parent is 0. Still need to make sure index
2284         0 is not used.
2285
2286         * src/generate.c: Generate qualified names when
2287         referring to non-local types. Emit transfer attribute
2288         for return types.
2289
2290         * src/compiler.c (format_output): Put the function
2291         attributes where gcc accepts them.
2292
2293 2005-05-11  Matthias Clasen  <mclasen@redhat.com>
2294
2295         * src/compiler.c (main): Add a --verbose cmdline option
2296         and only log messages if it is specified.
2297
2298         * src/gidlnode.h:
2299         * src/gidlnode.c (init_stats, dump_stats): Collect some
2300         statistics on string and type sharing.
2301
2302         * src/gidlmodule.c (g_idl_module_build_metadata): Use
2303         g_message() instead of fprintf().
2304
2305         * src/gidlnode.c (g_idl_node_free): Make this more robust.
2306         (g_idl_node_get_size): Implement for structs.
2307         (g_idl_node_get_full_size): Handle parent being NULL.
2308         (serialize_type): Handle lookup failures more gracefully.
2309
2310 2005-05-10  Matthias Clasen  <mclasen@redhat.com>
2311
2312         * src/gidlnode.c (g_idl_node_get_full_size): Correct the
2313         size calculation for 2-parameter types and for objects.
2314
2315         * src/compiler.c: Add a cmdline option for debug output
2316         and install a log handler to implement it.
2317         * src/gidlnode.c: Add some debug spew.
2318
2319         * TODO: Updates
2320
2321         * src/gidlmodule.c (g_idl_module_build_metadata): Don't
2322         forget to count the module name when calculating the
2323         required size for the metadata.
2324
2325         * src/gidlnode.c:
2326         * src/gidlparser.c: Fix compiler warnings.
2327
2328 2005-05-09  Matthias Clasen  <mclasen@redhat.com>
2329
2330         * src/compiler.c (main): Free the option context.
2331
2332         * gidl.dtd: Clean up handling of names. All elements
2333         have a "name", only the elements corresponding to
2334         actual callable functions (function, method, constructor),
2335         have an additional "symbol" attribute holding the
2336         dlsym()-able function name.
2337
2338         * src/generate.c: Adapt to generate xml matching the
2339         new dtd.
2340
2341         * src/gidlparser.c:
2342         * src/gidlnode.c: Adapt to parse the new dtd.
2343
2344         * tests/*.test: Adjust to the new dtd.
2345
2346         * metadata-format.txt:
2347         * src/gmetadata.h: Remove the short_name field
2348         from the ValueBlob.
2349         * src/gmetadata.c: Shrink size of ValueBlob to 12.
2350         * src/girepository.h:
2351         * src/ginfo.c (g_value_info_get_short_name): Removed
2352
2353 2005-05-09  Matthias Clasen  <mclasen@redhat.com>
2354
2355         * gidl.dtd: Allow constructors for boxed types,
2356         patch by Jonathan Blandford.
2357
2358
2359 2005-05-09  Matthias Clasen  <mclasen@redhat.com>
2360
2361         * --- Initial import ---