Wed Jun 07 15:03:18 2000 George Lebl * Release 1.0.1 Wed Jun 07 14:41:24 2000 George Lebl * configure.in, doc/gob.1.in: updates Mon Jun 05 12:10:46 2000 George Lebl * doc/gob.1.in: run through ispell, and fix option stuff to produce nicer html output with groff Thu Jun 01 18:12:13 2000 George Lebl * src/main.c: Make the private header switches work again. Wed May 31 01:50:25 2000 George Lebl * Release 1.0.0 Wed May 31 01:47:23 2000 George Lebl * src/gob.1.in: documentation of makefile rules for gob. Tue May 30 11:02:36 2000 George Lebl * src/lexer.l: Accept identifiers in array dimensions, this is so that you can make these some constants. Sat May 20 18:22:33 2000 George Lebl * Release 0.93.5 Sat May 20 18:22:23 2000 George Lebl * src/{main.c,checks.[ch]}: check for duplicate overrides, it is different from checking symbol names as they don't conflict with other symbols AND they only conflict if both the name and their type match Sat May 20 16:38:06 2000 George Lebl * src/{main.[ch],util.[ch],checks.c}: Add underscore removal for non-override methods. This means that local aliases will include prepended underscores, but when the full name is generated, or when the method name is added to class structure, the underscore is removed. * src/checks.c: overrides no longer checked for uniqueness, a more complex logic is needed. * src/{main.c,treefuncs.def,parse.y}: override naming is done with a unique id, so that we handle cases where two classes have the same method name. * doc/gob.1.in: update for the above. Sat May 20 14:42:00 2000 George Lebl * src/main.c: the private structure is now freed in finalize again and thus do the same dance around finalize as we do around destroy. Clean up some code. NULL all things being destroyed. The arbitary destructor uses memset as those things might not be just pointers. Thu May 11 23:48:44 2000 George Lebl * src/main.[ch]: provide the Self and SelfClass typedefs in addition to SELF, IS_SELF, SELF_CLASS macros. All of these can now be disabled with the --no-self-alias option * doc/gob.1.in: update * configure.in: raise version Tue May 09 23:18:16 2000 George Lebl * src/parse.y: fix segfault on parse error and give better error message Tue May 09 21:54:10 2000 George Lebl * doc/gob.1.in, src/main.c: Add destruction code into the destroy handler rather then finalize. Setup an extra function if neccessary to handle returns correctly as this must be called after any user code. Sat Apr 29 14:41:42 2000 George Lebl * Release 0.93.4 Sat Apr 29 14:40:40 2000 George Lebl * src/checks.c: code prettification * src/lexer.l, src/parse.y, src/test.gob: change "class" scope to "classwide" scope, not to overload the class keyword * src/main.[ch]: make private header files be generated by default, and cleanup that part a bit * doc/gob.1.in: add documentation of classwide * NEWS: Fri Apr 21 17:15:09 2000 George Lebl * src/main.c: add spaces after commas * src/lexer.l, src/main.c, src/parse.y: add class scope variables which are put into the class structure * src/test.gob: added a test for class variables * src/treefuncs.def: added CLASS_SCOPE * src/treefuncs.h: regenerated Mon Apr 17 20:13:47 2000 George Lebl * src/parse.y: on objectlink instead of just ref, do ref/sink. Sat Apr 15 23:07:30 2000 George Lebl * Release 0.93.3 Sat Apr 15 22:42:20 2000 George Lebl * src/main.c: fixes for ANSI C and C++. Just use GTK_VALUE_POINTER instead of GTK_VALUE_OBJECT so that we don't have to cast and don't cast lvalues. Sat Apr 15 22:09:49 2000 George Lebl * src/main.c: use the generic return type in signal marshallers rather then the specific one as the marshallers are truly generic Sat Apr 15 21:52:52 2000 George Lebl * src/main.c: fix some typesafety braindamages with OBJECT types in arguments by casting GTK_VALUE_OBJECT to gpointer. Also for seting arguments cast the ARG to atype if it exists Wed Apr 05 13:42:28 2000 George Lebl * src/parse.y: never allow NONE to be used as one of many arguments, always only by itself in the argument list * src/main.c: When printing out the signal marshaller prototype, don't print out the NONE (void) into the argument list, thanks to Soeren Sandmann for reporting that Mon Apr 03 13:07:33 2000 George Lebl * examples/Makefile.am: add my-person2.gob to EXTRA_DIST Sun Apr 02 18:09:40 2000 George Lebl * Release 0.93.2 Sun Apr 02 17:38:12 2000 George Lebl * src/Makefile.am: ass the .pl and .def file to EXTRA_DIST Sun Apr 2 14:37:49 PDT 2000 Manish Singh * configure.in: check for treefuncs.h instead of tree.h, since the latter has gone bye-bye Sat Apr 01 23:27:47 2000 George Lebl * doc/gob.1.in: add documentation for defreturn Sat Apr 01 18:03:31 2000 George Lebl * src/{treefuncs.(def|c|h),generate_treefuncs.pl}: What would gob be without some automatically generated code. The tree.[ch] was hard to keep up and didn't have free/copy so these do, otherwise it is the same. Also added a defreturn field to methods * src/*.[cyl]: include treefuncs.h rather then tree.h * src/{parse.y,lexer.l,main.c}: use the defreturn as the default for return values of signals and virtual methods. If this is not defined use the onerror or failing that '0'. onerror is also not a reserved keyword anymore * configure.in: raise version Mon Mar 27 13:08:01 2000 George Lebl * Release 0.93.1 Mon Mar 27 12:04:22 2000 George Lebl * src/util.[ch], src/main.c: figure out if we really need the special types, also make a hash for the gtk types instead of linear searching it all the time. * src/{lexer.c,checks.c,main.c}: minor fixes and cleanups 2000-03-21 Eskil Heyn Olsen * gob.m4: do not default GOB to no when not found (did that make sense ?) And better error message. Mon Mar 20 14:35:35 2000 George Lebl * src/lexer.l: handle single word typenames with an empty namespace Sun Mar 05 02:23:04 2000 George Lebl * src/main.c: add #lines around setting default handlers * src/parse.y: fix line number for 'destroywith' destructors Sat Mar 04 15:33:18 2000 George Lebl * src/checks.c: duplicate name test for arguments and signals is case insensitive now as those could cause trouble Mon Feb 28 02:45:27 2000 George Lebl * Release 0.93.0 Sun Feb 27 20:59:45 2000 George Lebl * src/parse.y,doc/gob.1.in: For stringlink, just return a pointer on get rather then strduping as that is 1) consistent with objectlink and 2) more flexible. Sun Feb 27 20:38:19 2000 George Lebl * src/{main.c,tree.[ch],parse.y}: add the arbitrary destruction handler for data members * doc/gob.1.in: updated and fixed up * configure.in,NEWS,examples/{README,my-person2.gob}: change version to 0.93.0 Sun Feb 27 18:37:57 2000 George Lebl * NEWS,doc/gob.1.in,examples/{README,my-person.gob,my-person2.gob}: update of docs and examples to include the new features and minor fixups Sun Feb 27 04:41:41 2000 George Lebl * src/main.c: make the output nicer for classes with no methods better typechecking in get/set_arg, fix a couple of C++ issues, * src/{main.c,parse.y,tree.[ch]}: automatic linking of arguments to data members. Also alow empty statements inside a class. Also add automatic data member destruction for pointer data, and automatic initialization for any data member. * src/main.[ch],src/out.c: add --no-lines which inhibits printing of #line things to output files * doc/gob.1.in: update for the above Fri Feb 25 15:21:47 2000 George Lebl * Release 0.92.4 Fri Feb 25 14:46:51 2000 George Lebl * src/main.c: add SELF casting macros * doc/gob.1.in: document the above Fri Feb 25 02:29:26 2000 George Lebl * src/main.c,src/tree.[ch],src/parse.y: public signals get GTK_RUN_ACTION added. Plus an interface for adding additional flags is added. * doc/gob.1.in: add docs for the above Fri Feb 25 01:37:20 2000 George Lebl * src/main.c: fix trailing comma on the end of the argument enum Sun Feb 13 23:54:53 2000 George Lebl * doc/gob.1.in: add doc patch from Dave Dunkin * doc/gob.1.in,examples/*.gob: use init(self) to be more consistent in naming Sat Feb 12 14:42:15 2000 George Lebl * src/main.c,src/lexer.l: apply patches from Dave Dunkin to add all and alltop ccode sections and to add a --no-write,-n option to not actually write any files. Also did some very cosmetic changes to code Mon Feb 07 23:45:04 2000 George Lebl * src/main.c: use the magic /*< private >*/ and /*< public >*/ comments to distinguish public and protected data members Mon Feb 07 03:02:48 2000 George Lebl * Release 0.92.3 Mon Feb 07 02:50:11 2000 George Lebl * src/lexer.l: error on multiple classes * src/main.c: nicer header output * src/{lexer.l,main.c}: Eat out gtk-doc like inline doc entries and stuff them into the output files where appropriate * doc/gob.1.in: added docs for gtk-doc like inline doc stuff * examples/{README, gtk-button-count.gob}: added inline docs Fri Feb 04 01:07:54 2000 George Lebl * src/main.c: use G_GNUC_UNUSED rather then our own macro for a very slightly cleaner looking output file 2000-01-31 Eskil Heyn Olsen * gob.m4: checks for gob binary, GOB_CHECK([version [, action_if_found[, action_if_not_found]]]). * Makefile.am: Install gob in $prefix/share/aclocal Thu Jan 27 17:50:11 2000 George Lebl * src/main.c: add #include Mon Jan 24 22:52:47 2000 George Lebl * Release 0.92.2 Mon Jan 24 22:23:47 2000 George Lebl * src/main.c: add a protecting define before the object typedef * doc/gob.1.in: add docs for the new stuff Sun Jan 23 16:19:54 2000 George Lebl * src/{lexer.l,parse.y,tree.[ch],main.c}: make more types of header %{ %} blocks, "headertop" and "privateheader" and made short as well as long names possible. * src/main.c: add an --no-extern-c option to not put entern "C" into the output, which is now put in by default even if --for-cpp is on so that it is possible to call those from C by default Thu Jan 20 01:50:45 2000 George Lebl * src/main.c: put the _real_ functions in our normal private namespace of ___* to be more consistent. Mon Jan 10 00:16:43 2000 George Lebl * src/{main.[ch],util.[ch],checks.[ch]}: offload some functionality to extra files * src/main.c: cleanup the generation routine by spliting it up into more functions * src/{main.h,lexer.l,parse.y,out.c}: put some needed externs into the main.h file and include that rather then doing it in the .c files Thu Jan 06 18:33:44 2000 George Lebl * src/main.c: use ___ for the signal marshalling typedefs as well Thu Jan 06 17:32:46 2000 George Lebl * Release 0.92.1 Thu Jan 06 17:13:22 2000 George Lebl * src/main.c: be consistent with the use of "namespacing", we prefix ALL internal gob stuff with "___". This should make it easier to avoid name conflicts with user code and glibc/gcc (Which seems to use __ prefix) * src/main.c: check for init and class_init names for non-constructor methods and give an error if found. * src/main.c: check argument types and flags for correctness, error on unknown type, but just a warning on unknown flag * doc/gob.1.in: add a section for name conflicts Wed Jan 05 02:23:21 2000 George Lebl * src/main.c: doh! the symbols for the aliases need to be declared as static. Wed Jan 05 02:13:59 2000 George Lebl * src/main.c: just realized that args... for macros is a GNU extention and so the PARENT_HANDLER no longer uses it, but prints the argument names with __ prefixed into the argument list. Wed Jan 05 01:58:32 2000 George Lebl * src/main.c: if using gnu c, also define macros using varargs for function aliases. This should allow the compiler to optimize further and if we have arguments for the defines there are no adverse side effects as there are for straight defines. Wed Jan 05 01:48:12 2000 George Lebl * src/main.c: fixup the aliases. They didn't actually work right. now we set it up as a const pointer to a function using typeof. Tue Jan 04 17:57:55 2000 George Lebl * src/lexer.l: add support for 'requires x.y.z' line. This is so that a .gob file can require at least version x.y.z of gob * src/test.gob: update * doc/gob.1.in: update for requires and run trhough ispell Tue Jan 04 17:10:54 2000 George Lebl * src/main.c: fix the non-gnu aliases Tue Jan 04 16:46:16 2000 George Lebl * src/{main.c,parser.y,tree.[ch]}: add optional C type specification to arguments for full type safety * doc/gob.1.in: updated Tue Jan 04 15:34:16 2000 George Lebl * src/main.c: --no-gnu option to completely disable any use of GNU C extentions. This is for those weird people that don't wish to use those extentions even with GNU C. Tue Jan 04 14:43:49 2000 George Lebl * src/main.c: use some GNU extentions (guarded with #ifdef __GNUC__) to make arguments fully typesafe, and to make it easier for GNU to optimize the aliases, as well as to avoid the ugly hack on GNU C. * src/main.c: don't put #line 0 for the .gob file for method prototypes * src/main.c: move the _priv structure freeing into finalize to enable people to work with the private stuff inside the destroy handler * src/main.c: use #line before every precondition check so that failed checks should point to the function prototype rather then into generated file. * src/main.c: remove the _END_ARG macro * src/main.c: add GOB_VERSION_MAJOR, GOB_VERSION_MINOR and GOB_VERSION_PATCHLEVEL defines into the generated C file * src/out.c: don't redundantly put #line for outfile if we're already in the outfile * configure.in: raise version number Tue Jan 04 02:22:33 2000 George Lebl * src/main.c: add argument wrapper macros to make the argument system a little more type safe. Fri Dec 31 17:39:22 1999 George Lebl * Release 0.92.0 Thu Dec 30 20:20:36 1999 George Lebl * src/main.c: correctly handle the complex fundemental types, so that we can handle ALL the fundemental types for signals Thu Dec 30 19:29:56 1999 George Lebl * src/main.c: don't use function types for casts in marshallers, but default types we get from our GTK_TYPE_* -> C type translation, and use this fact to check for same function types and combine signal prototypes. This doesn't yet handle well complex types, but I have an idea how to make complex types work. Though I dunno if it's actually worth it. Thu Dec 30 17:18:27 1999 George Lebl * src/main.c: figure out some types from GTK types and cast properly when emitting a signal. This catches some inconsistencies in signal func argument lists and the GTK types of the arguments. Wed Dec 29 18:04:13 1999 George Lebl * src/parse.y: allow scope, public/private/protected, to come before the signal or virtual keyword for consistency's sake. Wed Dec 29 01:39:30 1999 George Lebl * src/{tree.[ch],parser.y}: cleanup scope stuff * src/{lexer.l,parser.y,tree.h,main.c}: add protected keyword and methods. protected methods are put into the -private files and are real exported functions just like public. protected data members act like pre-0.91.x private datamembers, that is they get stuck into the public header, but marked /* protected */. * src/main.c: change the method body printing function so that we can catch the no return warning properly and send us to the .gob file instead of the .c file. * src/{parse.y,main.c}: handle empty publics/privates/overrides and handle the body being set to ';' rather then '{}' * src/main.c: check for empty nonvoid regular methods, and error out on finding them as that would produce warnings which we can't catch and it is generally bad to do anyway * src/{parse.y,tree.[ch],main.c}: use char pointers for C buffers, and kill leading/trailing whitespace from them to make the C files nicer and easier to recognize empty functions. * src/main.c: add a --version switch * doc/gob.1.in: Update with the above changes * configure.in: raise version Tue Dec 28 20:49:56 1999 George Lebl * src/main.c: apply patch from ChiDeok Hwang to make the hack function static so that we don't pollute namespace Mon Dec 27 19:56:24 1999 George Lebl * Release 0.91.2 Mon Dec 27 03:00:25 1999 George Lebl * src/main.c: fixup PARENT_HANDLER to work well with non-void functions, the macro becomes an expression if the function is not void and returns the return of the parent or the onerror expression if the function pointer was NULL. Mon Dec 27 02:25:32 1999 George Lebl * src/parse.y: allow completely empty classes * src/main.c: don't add the ugly hack function if there are no methods Mon Dec 27 01:26:26 1999 George Lebl * src/parse.y: fixup the virtual rule as I forgot to shift the argument numbers when adding to the expression Mon Dec 27 01:07:14 1999 George Lebl * src/parse.y: add optional public keyword to virtuals and signals, (which doesn't do anything, only consistency). I should perhaps rewrite and simplify this part of the parser * src/lexer.l: fix a bug with empty braces producing a segfault on public and private methods * doc/gob.1.in: add a section about Constructor methods (init class_init) and fix init_class -> class_init * configure.in: raise version to 0.91.2 Tue Dec 14 00:06:00 1999 George Lebl * Release 0.91.1 Mon Dec 13 23:25:06 1999 George Lebl * src/{main.c,out.c}: create a private header file and stick the private structure definition inside it. Add option --no-private-header for 0.91.0 behaviour and --always-private-header to force private header creation * doc/gob.1.in: update WRT above changes * examples/my-person.gob: include the private header * NEWS: update Mon Dec 13 18:30:09 1999 George Lebl * src/main.c: don't print spurious #line's into the private structure * src/{main.c,tree.[ch],lexer.l,parse.y}: implement support for array types for data members and function arguments Mon Dec 13 00:48:47 1999 George Lebl * Release 0.91.0 Sun Dec 12 22:55:12 1999 George Lebl * doc/gob.1.in: added paragraph noting that private data members cannot be accessed above the class definition in the .gob file Sun Dec 12 22:08:31 1999 George Lebl * src/main.c: implement real private data members as promised in the documentation, this however breaks some compatiblity with things that already used the 'private' keyword for data members * doc/gob.1.in: document private data member stuff * NEWS: update * src/main.c: a couple of sanity checks of the code to prevent weird errors on some broken .gob code * configure.in: update version to 0.91.0 Sun Dec 05 14:20:26 1999 George Lebl * src/{lexer.l,main.c}: if we find the class header #include statement in a %{ %} section above class definition, don't include it ourselves. * doc/gob.1.in: remove the note about the include always first from BUGS, and make a new section for the include file. Thu Nov 25 13:09:08 1999 George Lebl * Release 0.90.5 Thu Nov 25 13:00:52 1999 George Lebl * src/main.c: don't error out on a symbol conflict if the types of the symbol node don't match (variable,method) Sat Nov 20 16:15:42 1999 George Lebl * src/main.c: add PARENT_HANDLER macro to make calling parent handlers in override functions easier Fri Nov 19 16:41:09 1999 George Lebl * src/main.c: add a type macro Thu Nov 18 22:56:09 1999 George Lebl * src/parse.y: add a warning check if the number of GTK types of a signal doesn't seem to be correct for the given number of function arguments Tue Nov 16 01:23:45 1999 George Lebl * src/main.c: support a "no-touch-headers" mode in which the headers are not touched unless they actually really changed, not on by default as it confuses automake Tue Nov 16 00:36:42 1999 George Lebl * src/{main.c,lexer.l,parser.y,out.c}: Implement a C++ mode, get rid of C++ errors/warnings when in C++ mode, and get rid of the 'this' pointer finally (it's been deprecated long enough) Mon Nov 15 23:45:37 1999 George Lebl * src/main.c: add prototype for the really bad hack function to avoid warning Mon Nov 15 23:42:06 1999 George Lebl * src/main.c: generate correct function pointers in the structure for signals and virtuals. Also use a much nicer system instead of the method name defines, we now just set a bunch of static pointers, this removes a whole lot of headaches actually * doc/gob.1.in: repair to reflect the above (I removed the define BUGS paragraph) Sun Nov 14 17:57:34 1999 George Lebl * doc/gob.1.in: repair some things that confused troff and add a C preprocessor warning to BUGS Sat Nov 13 17:22:49 1999 George Lebl * **/Makefile.am, configure.in: fix the conditional installation stuff, don't even go into the doc directory if we aren't installing Sat Nov 13 16:53:20 1999 George Lebl * doc/gob.1.in: describe BUGS better Sat Nov 13 16:20:41 1999 George Lebl * src/lexer.l: don't kill C++ style comments from C blocks Sat Nov 13 16:16:59 1999 George Lebl * src/{lexer.l,main.c,out.c}: fixed spurious newline printing, don't kill comments from C blocks so that line counts are right, accept newlines in strings, and don't take \'\"\' as a string delimiter Sat Nov 13 14:53:26 1999 George Lebl * src/main.c: don't add gtk_object_class to class_init if we only have non-GtkObject overrides to avoid warning Sat Nov 13 14:31:25 1999 George Lebl * configure.in,src/Makefile.am,doc/Makefile.am: check for ../NOINST_GOB and in case it's found don't install self Fri Nov 12 16:25:35 1999 George Lebl * configure.in,Makefile.am,src/main.c: don't use popt, our arguments are simple enough and popt doesn't seem to be widely used yet Sun Sep 05 22:08:40 1999 George Lebl * Release 0.90.2 Sun Sep 05 22:08:33 1999 George Lebl * doc/gob.1.in: updated for private virtual and signal wrappers Sun Sep 05 21:50:19 1999 George Lebl * configure.in: raise version and actually set POPT_LIB correctly * src/Makefile.am: use POPT_LIB Sun Sep 05 21:45:54 1999 George Lebl * src/tree.h,src/main.c,src/parse.y: add support for private signals and virtuals * src/parse.y: fix bug with bogus vararg methods Sun Sep 04 17:44:37 1999 George Lebl * Release 0.90.1 Sat Sep 04 17:18:22 1999 George Lebl * src/lexer.l,src/parse.y,src/main.c,src/tree.[ch]: support variable arguments for public and private methods Sat Sep 04 16:51:11 1999 George Lebl * lexer.l,parse.y: accept const in parameter lists Sun Aug 29 13:46:33 1999 George Lebl * Release 0.90.0 Sat Aug 28 23:36:48 1999 George Lebl * src/main.[ch],parse.y: make error/warning reporting public and use it to report depreciated use of 'this' Sat Aug 28 22:41:52 1999 George Lebl * src/tree.[ch],parse.y,main.c: check for duplicate variables and signals and arguments as well. Sat Aug 28 22:00:19 1999 George Lebl * src/parse.y,src/main.c: change "this" to "self", but accept "this" as well * src/main.c: check for duplicate methods, and warn on non-public "new" method * configure.in: change to version 0.90.0 * doc/gob.1.in: change this to self Tue Aug 24 20:37:26 1999 George Lebl * Release 0.0.4 Thu Aug 19 03:18:03 1999 George Lebl * src/main.c: also count overrides to avoid an unused variable on class_init Thu Aug 19 03:08:49 1999 George Lebl * src/parse.y: in a check, we can check not only about numbers but for tokens as well Wed Aug 18 12:54:17 1999 George Lebl * Release 0.0.3 Tue Aug 17 22:24:47 1999 George Lebl * src/lexer.l,src/parse.y: don't use reserved words for check type last first and null * src/{lexer.l,parse.y,tree.[ch],main.c}: add #line's to output files * src/out.[ch]: new functions for output so that we can easily add #line's to files * src/main.c: fix get/set arguments * doc/gob.1.in: updated for newer version and spellchecked, also gob.1 is generated by configure now to get versions correct * gob.spec.in: added a spec file Fri Jul 30 02:19:05 1999 George Lebl * src/parse.y: accept simple char types * src/main.c: make prototypes look better, and don't output arg stuff when it won't be used * Makefile,src/Makefile: add test make target