1 Fri Feb 25 15:21:47 2000 George Lebl <jirka@5z.com>
5 Fri Feb 25 14:46:51 2000 George Lebl <jirka@5z.com>
7 * src/main.c: add SELF casting macros
9 * doc/gob.1.in: document the above
11 Fri Feb 25 02:29:26 2000 George Lebl <jirka@5z.com>
13 * src/main.c,src/tree.[ch],src/parse.y: public signals get
14 GTK_RUN_ACTION added. Plus an interface for adding additional
17 * doc/gob.1.in: add docs for the above
19 Fri Feb 25 01:37:20 2000 George Lebl <jirka@5z.com>
21 * src/main.c: fix trailing comma on the end of the argument enum
23 Sun Feb 13 23:54:53 2000 George Lebl <jirka@5z.com>
25 * doc/gob.1.in: add doc patch from Dave Dunkin <dunkind@letu.edu>
27 * doc/gob.1.in,examples/*.gob: use init(self) to be more consistent
30 Sat Feb 12 14:42:15 2000 George Lebl <jirka@5z.com>
32 * src/main.c,src/lexer.l: apply patches from Dave Dunkin
33 <dunkind@letu.edu> to add all and alltop ccode sections
34 and to add a --no-write,-n option to not actually write
35 any files. Also did some very cosmetic changes to code
37 Mon Feb 07 23:45:04 2000 George Lebl <jirka@5z.com>
39 * src/main.c: use the magic /*< private >*/ and /*< public >*/
40 comments to distinguish public and protected data members
42 Mon Feb 07 03:02:48 2000 George Lebl <jirka@5z.com>
46 Mon Feb 07 02:50:11 2000 George Lebl <jirka@5z.com>
48 * src/lexer.l: error on multiple classes
50 * src/main.c: nicer header output
52 * src/{lexer.l,main.c}: Eat out gtk-doc like inline doc entries
53 and stuff them into the output files where appropriate
55 * doc/gob.1.in: added docs for gtk-doc like inline doc stuff
57 * examples/{README, gtk-button-count.gob}: added inline docs
59 Fri Feb 04 01:07:54 2000 George Lebl <jirka@5z.com>
61 * src/main.c: use G_GNUC_UNUSED rather then our own macro for a
62 very slightly cleaner looking output file
64 2000-01-31 Eskil Heyn Olsen <deity@eskil.dk>
66 * gob.m4: checks for gob binary, GOB_CHECK([version [,
67 action_if_found[, action_if_not_found]]]).
69 * Makefile.am: Install gob in $prefix/share/aclocal
71 Thu Jan 27 17:50:11 2000 George Lebl <jirka@5z.com>
73 * src/main.c: add #include <stdlib.h>
75 Mon Jan 24 22:52:47 2000 George Lebl <jirka@5z.com>
79 Mon Jan 24 22:23:47 2000 George Lebl <jirka@5z.com>
81 * src/main.c: add a protecting define before the object typedef
83 * doc/gob.1.in: add docs for the new stuff
85 Sun Jan 23 16:19:54 2000 George Lebl <jirka@5z.com>
87 * src/{lexer.l,parse.y,tree.[ch],main.c}: make more types of header
88 %{ %} blocks, "headertop" and "privateheader" and made short as
89 well as long names possible.
91 * src/main.c: add an --no-extern-c option to not put entern "C" into
92 the output, which is now put in by default even if --for-cpp is
93 on so that it is possible to call those from C by default
95 Thu Jan 20 01:50:45 2000 George Lebl <jirka@5z.com>
97 * src/main.c: put the _real_ functions in our normal private
98 namespace of ___* to be more consistent.
100 Mon Jan 10 00:16:43 2000 George Lebl <jirka@5z.com>
102 * src/{main.[ch],util.[ch],checks.[ch]}: offload some functionality to
105 * src/main.c: cleanup the generation routine by spliting it up into
108 * src/{main.h,lexer.l,parse.y,out.c}: put some needed externs into the
109 main.h file and include that rather then doing it in the .c files
111 Thu Jan 06 18:33:44 2000 George Lebl <jirka@5z.com>
113 * src/main.c: use ___ for the signal marshalling typedefs as well
115 Thu Jan 06 17:32:46 2000 George Lebl <jirka@5z.com>
119 Thu Jan 06 17:13:22 2000 George Lebl <jirka@5z.com>
121 * src/main.c: be consistent with the use of "namespacing", we
122 prefix ALL internal gob stuff with "___". This should make it
123 easier to avoid name conflicts with user code and glibc/gcc (Which
124 seems to use __ prefix)
126 * src/main.c: check for init and class_init names for non-constructor
127 methods and give an error if found.
129 * src/main.c: check argument types and flags for correctness, error
130 on unknown type, but just a warning on unknown flag
132 * doc/gob.1.in: add a section for name conflicts
134 Wed Jan 05 02:23:21 2000 George Lebl <jirka@5z.com>
136 * src/main.c: doh! the symbols for the aliases need to be declared as
139 Wed Jan 05 02:13:59 2000 George Lebl <jirka@5z.com>
141 * src/main.c: just realized that args... for macros is a GNU
142 extention and so the PARENT_HANDLER no longer uses it, but prints
143 the argument names with __ prefixed into the argument list.
145 Wed Jan 05 01:58:32 2000 George Lebl <jirka@5z.com>
147 * src/main.c: if using gnu c, also define macros using varargs for
148 function aliases. This should allow the compiler to optimize
149 further and if we have arguments for the defines there are
150 no adverse side effects as there are for straight defines.
152 Wed Jan 05 01:48:12 2000 George Lebl <jirka@5z.com>
154 * src/main.c: fixup the aliases. They didn't actually work right.
155 now we set it up as a const pointer to a function using typeof.
157 Tue Jan 04 17:57:55 2000 George Lebl <jirka@5z.com>
159 * src/lexer.l: add support for 'requires x.y.z' line. This is
160 so that a .gob file can require at least version x.y.z of gob
162 * src/test.gob: update
164 * doc/gob.1.in: update for requires and run trhough ispell
166 Tue Jan 04 17:10:54 2000 George Lebl <jirka@5z.com>
168 * src/main.c: fix the non-gnu aliases
170 Tue Jan 04 16:46:16 2000 George Lebl <jirka@5z.com>
172 * src/{main.c,parser.y,tree.[ch]}: add optional C type specification
173 to arguments for full type safety
175 * doc/gob.1.in: updated
177 Tue Jan 04 15:34:16 2000 George Lebl <jirka@5z.com>
179 * src/main.c: --no-gnu option to completely disable any use
180 of GNU C extentions. This is for those weird people that don't
181 wish to use those extentions even with GNU C.
183 Tue Jan 04 14:43:49 2000 George Lebl <jirka@5z.com>
185 * src/main.c: use some GNU extentions (guarded with #ifdef __GNUC__)
186 to make arguments fully typesafe, and to make it easier for
187 GNU to optimize the aliases, as well as to avoid the ugly
190 * src/main.c: don't put #line 0 for the .gob file for method prototypes
192 * src/main.c: move the _priv structure freeing into finalize to enable
193 people to work with the private stuff inside the destroy handler
195 * src/main.c: use #line before every precondition check so that failed
196 checks should point to the function prototype rather then into
199 * src/main.c: remove the _END_ARG macro
201 * src/main.c: add GOB_VERSION_MAJOR, GOB_VERSION_MINOR and
202 GOB_VERSION_PATCHLEVEL defines into the generated C file
204 * src/out.c: don't redundantly put #line for outfile if we're already
207 * configure.in: raise version number
209 Tue Jan 04 02:22:33 2000 George Lebl <jirka@5z.com>
211 * src/main.c: add argument wrapper macros to make the argument system
212 a little more type safe.
214 Fri Dec 31 17:39:22 1999 George Lebl <jirka@5z.com>
218 Thu Dec 30 20:20:36 1999 George Lebl <jirka@5z.com>
220 * src/main.c: correctly handle the complex fundemental types,
221 so that we can handle ALL the fundemental types for signals
223 Thu Dec 30 19:29:56 1999 George Lebl <jirka@5z.com>
225 * src/main.c: don't use function types for casts in marshallers,
226 but default types we get from our GTK_TYPE_* -> C type translation,
227 and use this fact to check for same function types and combine
228 signal prototypes. This doesn't yet handle well complex types,
229 but I have an idea how to make complex types work. Though
230 I dunno if it's actually worth it.
232 Thu Dec 30 17:18:27 1999 George Lebl <jirka@5z.com>
234 * src/main.c: figure out some types from GTK types and cast properly
235 when emitting a signal. This catches some inconsistencies in
236 signal func argument lists and the GTK types of the arguments.
238 Wed Dec 29 18:04:13 1999 George Lebl <jirka@5z.com>
240 * src/parse.y: allow scope, public/private/protected, to come before
241 the signal or virtual keyword for consistency's sake.
243 Wed Dec 29 01:39:30 1999 George Lebl <jirka@5z.com>
245 * src/{tree.[ch],parser.y}: cleanup scope stuff
247 * src/{lexer.l,parser.y,tree.h,main.c}: add protected keyword and
248 methods. protected methods are put into the -private files and
249 are real exported functions just like public. protected data
250 members act like pre-0.91.x private datamembers, that is they
251 get stuck into the public header, but marked /* protected */.
253 * src/main.c: change the method body printing function so that we
254 can catch the no return warning properly and send us to the .gob
255 file instead of the .c file.
257 * src/{parse.y,main.c}: handle empty publics/privates/overrides
258 and handle the body being set to ';' rather then '{}'
260 * src/main.c: check for empty nonvoid regular methods, and error out
261 on finding them as that would produce warnings which we can't catch
262 and it is generally bad to do anyway
264 * src/{parse.y,tree.[ch],main.c}: use char pointers for C buffers,
265 and kill leading/trailing whitespace from them to make the C files
266 nicer and easier to recognize empty functions.
268 * src/main.c: add a --version switch
270 * doc/gob.1.in: Update with the above changes
272 * configure.in: raise version
274 Tue Dec 28 20:49:56 1999 George Lebl <jirka@5z.com>
276 * src/main.c: apply patch from ChiDeok Hwang <cdhwang@sr.hei.co.kr>
277 to make the hack function static so that we don't pollute namespace
279 Mon Dec 27 19:56:24 1999 George Lebl <jirka@5z.com>
283 Mon Dec 27 03:00:25 1999 George Lebl <jirka@5z.com>
285 * src/main.c: fixup PARENT_HANDLER to work well with non-void
286 functions, the macro becomes an expression if the function is
287 not void and returns the return of the parent or the onerror
288 expression if the function pointer was NULL.
290 Mon Dec 27 02:25:32 1999 George Lebl <jirka@5z.com>
292 * src/parse.y: allow completely empty classes
294 * src/main.c: don't add the ugly hack function if there are no
297 Mon Dec 27 01:26:26 1999 George Lebl <jirka@5z.com>
299 * src/parse.y: fixup the virtual rule as I forgot to shift the
300 argument numbers when adding to the expression
302 Mon Dec 27 01:07:14 1999 George Lebl <jirka@5z.com>
304 * src/parse.y: add optional public keyword to virtuals and signals,
305 (which doesn't do anything, only consistency). I should perhaps
306 rewrite and simplify this part of the parser
308 * src/lexer.l: fix a bug with empty braces producing a segfault
309 on public and private methods
311 * doc/gob.1.in: add a section about Constructor methods (init
312 class_init) and fix init_class -> class_init
314 * configure.in: raise version to 0.91.2
316 Tue Dec 14 00:06:00 1999 George Lebl <jirka@5z.com>
320 Mon Dec 13 23:25:06 1999 George Lebl <jirka@5z.com>
322 * src/{main.c,out.c}: create a private header file and stick
323 the private structure definition inside it. Add option
324 --no-private-header for 0.91.0 behaviour and
325 --always-private-header to force private header creation
327 * doc/gob.1.in: update WRT above changes
329 * examples/my-person.gob: include the private header
333 Mon Dec 13 18:30:09 1999 George Lebl <jirka@5z.com>
335 * src/main.c: don't print spurious #line's into the private
338 * src/{main.c,tree.[ch],lexer.l,parse.y}: implement support for
339 array types for data members and function arguments
341 Mon Dec 13 00:48:47 1999 George Lebl <jirka@5z.com>
345 Sun Dec 12 22:55:12 1999 George Lebl <jirka@5z.com>
347 * doc/gob.1.in: added paragraph noting that private data members
348 cannot be accessed above the class definition in the .gob file
350 Sun Dec 12 22:08:31 1999 George Lebl <jirka@5z.com>
352 * src/main.c: implement real private data members as promised in
353 the documentation, this however breaks some compatiblity with
354 things that already used the 'private' keyword for data members
356 * doc/gob.1.in: document private data member stuff
360 * src/main.c: a couple of sanity checks of the code to prevent weird
361 errors on some broken .gob code
363 * configure.in: update version to 0.91.0
365 Sun Dec 05 14:20:26 1999 George Lebl <jirka@5z.com>
367 * src/{lexer.l,main.c}: if we find the class header #include
368 statement in a %{ %} section above class definition, don't
369 include it ourselves.
371 * doc/gob.1.in: remove the note about the include always first from
372 BUGS, and make a new section for the include file.
374 Thu Nov 25 13:09:08 1999 George Lebl <jirka@5z.com>
378 Thu Nov 25 13:00:52 1999 George Lebl <jirka@5z.com>
380 * src/main.c: don't error out on a symbol conflict if the types of
381 the symbol node don't match (variable,method)
383 Sat Nov 20 16:15:42 1999 George Lebl <jirka@5z.com>
385 * src/main.c: add PARENT_HANDLER macro to make calling parent
386 handlers in override functions easier
388 Fri Nov 19 16:41:09 1999 George Lebl <jirka@5z.com>
390 * src/main.c: add a type macro
392 Thu Nov 18 22:56:09 1999 George Lebl <jirka@5z.com>
394 * src/parse.y: add a warning check if the number of GTK types of
395 a signal doesn't seem to be correct for the given number of
398 Tue Nov 16 01:23:45 1999 George Lebl <jirka@5z.com>
400 * src/main.c: support a "no-touch-headers" mode in which the
401 headers are not touched unless they actually really changed,
402 not on by default as it confuses automake
404 Tue Nov 16 00:36:42 1999 George Lebl <jirka@5z.com>
406 * src/{main.c,lexer.l,parser.y,out.c}: Implement a C++ mode, get
407 rid of C++ errors/warnings when in C++ mode, and get rid of
408 the 'this' pointer finally (it's been deprecated long enough)
410 Mon Nov 15 23:45:37 1999 George Lebl <jirka@5z.com>
412 * src/main.c: add prototype for the really bad hack function to
415 Mon Nov 15 23:42:06 1999 George Lebl <jirka@5z.com>
417 * src/main.c: generate correct function pointers in the structure
418 for signals and virtuals. Also use a much nicer system instead
419 of the method name defines, we now just set a bunch of static
420 pointers, this removes a whole lot of headaches actually
422 * doc/gob.1.in: repair to reflect the above (I removed the define
425 Sun Nov 14 17:57:34 1999 George Lebl <jirka@5z.com>
427 * doc/gob.1.in: repair some things that confused troff and add
428 a C preprocessor warning to BUGS
430 Sat Nov 13 17:22:49 1999 George Lebl <jirka@5z.com>
432 * **/Makefile.am, configure.in: fix the conditional installation
433 stuff, don't even go into the doc directory if we aren't installing
435 Sat Nov 13 16:53:20 1999 George Lebl <jirka@5z.com>
437 * doc/gob.1.in: describe BUGS better
439 Sat Nov 13 16:20:41 1999 George Lebl <jirka@5z.com>
441 * src/lexer.l: don't kill C++ style comments from C blocks
443 Sat Nov 13 16:16:59 1999 George Lebl <jirka@5z.com>
445 * src/{lexer.l,main.c,out.c}: fixed spurious newline printing, don't
446 kill comments from C blocks so that line counts are right, accept
447 newlines in strings, and don't take \'\"\' as a string delimiter
449 Sat Nov 13 14:53:26 1999 George Lebl <jirka@5z.com>
451 * src/main.c: don't add gtk_object_class to class_init if we only
452 have non-GtkObject overrides to avoid warning
454 Sat Nov 13 14:31:25 1999 George Lebl <jirka@5z.com>
456 * configure.in,src/Makefile.am,doc/Makefile.am: check for
457 ../NOINST_GOB and in case it's found don't install self
459 Fri Nov 12 16:25:35 1999 George Lebl <jirka@5z.com>
461 * configure.in,Makefile.am,src/main.c: don't use popt, our arguments
462 are simple enough and popt doesn't seem to be widely used yet
464 Sun Sep 05 22:08:40 1999 George Lebl <jirka@5z.com>
468 Sun Sep 05 22:08:33 1999 George Lebl <jirka@5z.com>
470 * doc/gob.1.in: updated for private virtual and signal wrappers
472 Sun Sep 05 21:50:19 1999 George Lebl <jirka@5z.com>
474 * configure.in: raise version and actually set POPT_LIB correctly
476 * src/Makefile.am: use POPT_LIB
478 Sun Sep 05 21:45:54 1999 George Lebl <jirka@5z.com>
480 * src/tree.h,src/main.c,src/parse.y: add support for private signals
483 * src/parse.y: fix bug with bogus vararg methods
485 Sun Sep 04 17:44:37 1999 George Lebl <jirka@5z.com>
489 Sat Sep 04 17:18:22 1999 George Lebl <jirka@5z.com>
491 * src/lexer.l,src/parse.y,src/main.c,src/tree.[ch]: support
492 variable arguments for public and private methods
494 Sat Sep 04 16:51:11 1999 George Lebl <jirka@5z.com>
496 * lexer.l,parse.y: accept const in parameter lists
498 Sun Aug 29 13:46:33 1999 George Lebl <jirka@5z.com>
502 Sat Aug 28 23:36:48 1999 George Lebl <jirka@5z.com>
504 * src/main.[ch],parse.y: make error/warning reporting public
505 and use it to report depreciated use of 'this'
507 Sat Aug 28 22:41:52 1999 George Lebl <jirka@5z.com>
509 * src/tree.[ch],parse.y,main.c: check for duplicate variables and
510 signals and arguments as well.
512 Sat Aug 28 22:00:19 1999 George Lebl <jirka@5z.com>
514 * src/parse.y,src/main.c: change "this" to "self", but accept "this"
517 * src/main.c: check for duplicate methods, and warn on non-public
520 * configure.in: change to version 0.90.0
522 * doc/gob.1.in: change this to self
524 Tue Aug 24 20:37:26 1999 George Lebl <jirka@5z.com>
528 Thu Aug 19 03:18:03 1999 George Lebl <jirka@5z.com>
530 * src/main.c: also count overrides to avoid an unused variable on
533 Thu Aug 19 03:08:49 1999 George Lebl <jirka@5z.com>
535 * src/parse.y: in a check, we can check not only about numbers
536 but for tokens as well
538 Wed Aug 18 12:54:17 1999 George Lebl <jirka@5z.com>
542 Tue Aug 17 22:24:47 1999 George Lebl <jirka@5z.com>
544 * src/lexer.l,src/parse.y: don't use reserved words for check type
547 * src/{lexer.l,parse.y,tree.[ch],main.c}: add #line's to output
550 * src/out.[ch]: new functions for output so that we can easily add
553 * src/main.c: fix get/set arguments
555 * doc/gob.1.in: updated for newer version and spellchecked, also
556 gob.1 is generated by configure now to get versions correct
558 * gob.spec.in: added a spec file
560 Fri Jul 30 02:19:05 1999 George Lebl <jirka@5z.com>
562 * src/parse.y: accept simple char types
564 * src/main.c: make prototypes look better, and don't output arg stuff
565 when it won't be used
567 * Makefile,src/Makefile: add test make target