1 Thu Jan 06 17:32:46 2000 George Lebl <jirka@5z.com>
5 Thu Jan 06 17:13:22 2000 George Lebl <jirka@5z.com>
7 * src/main.c: be consistent with the use of "namespacing", we
8 prefix ALL internal gob stuff with "___". This should make it
9 easier to avoid name conflicts with user code and glibc/gcc (Which
10 seems to use __ prefix)
12 * src/main.c: check for init and class_init names for non-constructor
13 methods and give an error if found.
15 * src/main.c: check argument types and flags for correctness, error
16 on unknown type, but just a warning on unknown flag
18 * doc/gob.1.in: add a section for name conflicts
20 Wed Jan 05 02:23:21 2000 George Lebl <jirka@5z.com>
22 * src/main.c: doh! the symbols for the aliases need to be declared as
25 Wed Jan 05 02:13:59 2000 George Lebl <jirka@5z.com>
27 * src/main.c: just realized that args... for macros is a GNU
28 extention and so the PARENT_HANDLER no longer uses it, but prints
29 the argument names with __ prefixed into the argument list.
31 Wed Jan 05 01:58:32 2000 George Lebl <jirka@5z.com>
33 * src/main.c: if using gnu c, also define macros using varargs for
34 function aliases. This should allow the compiler to optimize
35 further and if we have arguments for the defines there are
36 no adverse side effects as there are for straight defines.
38 Wed Jan 05 01:48:12 2000 George Lebl <jirka@5z.com>
40 * src/main.c: fixup the aliases. They didn't actually work right.
41 now we set it up as a const pointer to a function using typeof.
43 Tue Jan 04 17:57:55 2000 George Lebl <jirka@5z.com>
45 * src/lexer.l: add support for 'requires x.y.z' line. This is
46 so that a .gob file can require at least version x.y.z of gob
48 * src/test.gob: update
50 * doc/gob.1.in: update for requires and run trhough ispell
52 Tue Jan 04 17:10:54 2000 George Lebl <jirka@5z.com>
54 * src/main.c: fix the non-gnu aliases
56 Tue Jan 04 16:46:16 2000 George Lebl <jirka@5z.com>
58 * src/{main.c,parser.y,tree.[ch]}: add optional C type specification
59 to arguments for full type safety
61 * doc/gob.1.in: updated
63 Tue Jan 04 15:34:16 2000 George Lebl <jirka@5z.com>
65 * src/main.c: --no-gnu option to completely disable any use
66 of GNU C extentions. This is for those weird people that don't
67 wish to use those extentions even with GNU C.
69 Tue Jan 04 14:43:49 2000 George Lebl <jirka@5z.com>
71 * src/main.c: use some GNU extentions (guarded with #ifdef __GNUC__)
72 to make arguments fully typesafe, and to make it easier for
73 GNU to optimize the aliases, as well as to avoid the ugly
76 * src/main.c: don't put #line 0 for the .gob file for method prototypes
78 * src/main.c: move the _priv structure freeing into finalize to enable
79 people to work with the private stuff inside the destroy handler
81 * src/main.c: use #line before every precondition check so that failed
82 checks should point to the function prototype rather then into
85 * src/main.c: remove the _END_ARG macro
87 * src/main.c: add GOB_VERSION_MAJOR, GOB_VERSION_MINOR and
88 GOB_VERSION_PATCHLEVEL defines into the generated C file
90 * src/out.c: don't redundantly put #line for outfile if we're already
93 * configure.in: raise version number
95 Tue Jan 04 02:22:33 2000 George Lebl <jirka@5z.com>
97 * src/main.c: add argument wrapper macros to make the argument system
98 a little more type safe.
100 Fri Dec 31 17:39:22 1999 George Lebl <jirka@5z.com>
104 Thu Dec 30 20:20:36 1999 George Lebl <jirka@5z.com>
106 * src/main.c: correctly handle the complex fundemental types,
107 so that we can handle ALL the fundemental types for signals
109 Thu Dec 30 19:29:56 1999 George Lebl <jirka@5z.com>
111 * src/main.c: don't use function types for casts in marshallers,
112 but default types we get from our GTK_TYPE_* -> C type translation,
113 and use this fact to check for same function types and combine
114 signal prototypes. This doesn't yet handle well complex types,
115 but I have an idea how to make complex types work. Though
116 I dunno if it's actually worth it.
118 Thu Dec 30 17:18:27 1999 George Lebl <jirka@5z.com>
120 * src/main.c: figure out some types from GTK types and cast properly
121 when emitting a signal. This catches some inconsistencies in
122 signal func argument lists and the GTK types of the arguments.
124 Wed Dec 29 18:04:13 1999 George Lebl <jirka@5z.com>
126 * src/parse.y: allow scope, public/private/protected, to come before
127 the signal or virtual keyword for consistency's sake.
129 Wed Dec 29 01:39:30 1999 George Lebl <jirka@5z.com>
131 * src/{tree.[ch],parser.y}: cleanup scope stuff
133 * src/{lexer.l,parser.y,tree.h,main.c}: add protected keyword and
134 methods. protected methods are put into the -private files and
135 are real exported functions just like public. protected data
136 members act like pre-0.91.x private datamembers, that is they
137 get stuck into the public header, but marked /* protected */.
139 * src/main.c: change the method body printing function so that we
140 can catch the no return warning properly and send us to the .gob
141 file instead of the .c file.
143 * src/{parse.y,main.c}: handle empty publics/privates/overrides
144 and handle the body being set to ';' rather then '{}'
146 * src/main.c: check for empty nonvoid regular methods, and error out
147 on finding them as that would produce warnings which we can't catch
148 and it is generally bad to do anyway
150 * src/{parse.y,tree.[ch],main.c}: use char pointers for C buffers,
151 and kill leading/trailing whitespace from them to make the C files
152 nicer and easier to recognize empty functions.
154 * src/main.c: add a --version switch
156 * doc/gob.1.in: Update with the above changes
158 * configure.in: raise version
160 Tue Dec 28 20:49:56 1999 George Lebl <jirka@5z.com>
162 * src/main.c: apply patch from ChiDeok Hwang <cdhwang@sr.hei.co.kr>
163 to make the hack function static so that we don't pollute namespace
165 Mon Dec 27 19:56:24 1999 George Lebl <jirka@5z.com>
169 Mon Dec 27 03:00:25 1999 George Lebl <jirka@5z.com>
171 * src/main.c: fixup PARENT_HANDLER to work well with non-void
172 functions, the macro becomes an expression if the function is
173 not void and returns the return of the parent or the onerror
174 expression if the function pointer was NULL.
176 Mon Dec 27 02:25:32 1999 George Lebl <jirka@5z.com>
178 * src/parse.y: allow completely empty classes
180 * src/main.c: don't add the ugly hack function if there are no
183 Mon Dec 27 01:26:26 1999 George Lebl <jirka@5z.com>
185 * src/parse.y: fixup the virtual rule as I forgot to shift the
186 argument numbers when adding to the expression
188 Mon Dec 27 01:07:14 1999 George Lebl <jirka@5z.com>
190 * src/parse.y: add optional public keyword to virtuals and signals,
191 (which doesn't do anything, only consistency). I should perhaps
192 rewrite and simplify this part of the parser
194 * src/lexer.l: fix a bug with empty braces producing a segfault
195 on public and private methods
197 * doc/gob.1.in: add a section about Constructor methods (init
198 class_init) and fix init_class -> class_init
200 * configure.in: raise version to 0.91.2
202 Tue Dec 14 00:06:00 1999 George Lebl <jirka@5z.com>
206 Mon Dec 13 23:25:06 1999 George Lebl <jirka@5z.com>
208 * src/{main.c,out.c}: create a private header file and stick
209 the private structure definition inside it. Add option
210 --no-private-header for 0.91.0 behaviour and
211 --always-private-header to force private header creation
213 * doc/gob.1.in: update WRT above changes
215 * examples/my-person.gob: include the private header
219 Mon Dec 13 18:30:09 1999 George Lebl <jirka@5z.com>
221 * src/main.c: don't print spurious #line's into the private
224 * src/{main.c,tree.[ch],lexer.l,parse.y}: implement support for
225 array types for data members and function arguments
227 Mon Dec 13 00:48:47 1999 George Lebl <jirka@5z.com>
231 Sun Dec 12 22:55:12 1999 George Lebl <jirka@5z.com>
233 * doc/gob.1.in: added paragraph noting that private data members
234 cannot be accessed above the class definition in the .gob file
236 Sun Dec 12 22:08:31 1999 George Lebl <jirka@5z.com>
238 * src/main.c: implement real private data members as promised in
239 the documentation, this however breaks some compatiblity with
240 things that already used the 'private' keyword for data members
242 * doc/gob.1.in: document private data member stuff
246 * src/main.c: a couple of sanity checks of the code to prevent weird
247 errors on some broken .gob code
249 * configure.in: update version to 0.91.0
251 Sun Dec 05 14:20:26 1999 George Lebl <jirka@5z.com>
253 * src/{lexer.l,main.c}: if we find the class header #include
254 statement in a %{ %} section above class definition, don't
255 include it ourselves.
257 * doc/gob.1.in: remove the note about the include always first from
258 BUGS, and make a new section for the include file.
260 Thu Nov 25 13:09:08 1999 George Lebl <jirka@5z.com>
264 Thu Nov 25 13:00:52 1999 George Lebl <jirka@5z.com>
266 * src/main.c: don't error out on a symbol conflict if the types of
267 the symbol node don't match (variable,method)
269 Sat Nov 20 16:15:42 1999 George Lebl <jirka@5z.com>
271 * src/main.c: add PARENT_HANDLER macro to make calling parent
272 handlers in override functions easier
274 Fri Nov 19 16:41:09 1999 George Lebl <jirka@5z.com>
276 * src/main.c: add a type macro
278 Thu Nov 18 22:56:09 1999 George Lebl <jirka@5z.com>
280 * src/parse.y: add a warning check if the number of GTK types of
281 a signal doesn't seem to be correct for the given number of
284 Tue Nov 16 01:23:45 1999 George Lebl <jirka@5z.com>
286 * src/main.c: support a "no-touch-headers" mode in which the
287 headers are not touched unless they actually really changed,
288 not on by default as it confuses automake
290 Tue Nov 16 00:36:42 1999 George Lebl <jirka@5z.com>
292 * src/{main.c,lexer.l,parser.y,out.c}: Implement a C++ mode, get
293 rid of C++ errors/warnings when in C++ mode, and get rid of
294 the 'this' pointer finally (it's been deprecated long enough)
296 Mon Nov 15 23:45:37 1999 George Lebl <jirka@5z.com>
298 * src/main.c: add prototype for the really bad hack function to
301 Mon Nov 15 23:42:06 1999 George Lebl <jirka@5z.com>
303 * src/main.c: generate correct function pointers in the structure
304 for signals and virtuals. Also use a much nicer system instead
305 of the method name defines, we now just set a bunch of static
306 pointers, this removes a whole lot of headaches actually
308 * doc/gob.1.in: repair to reflect the above (I removed the define
311 Sun Nov 14 17:57:34 1999 George Lebl <jirka@5z.com>
313 * doc/gob.1.in: repair some things that confused troff and add
314 a C preprocessor warning to BUGS
316 Sat Nov 13 17:22:49 1999 George Lebl <jirka@5z.com>
318 * **/Makefile.am, configure.in: fix the conditional installation
319 stuff, don't even go into the doc directory if we aren't installing
321 Sat Nov 13 16:53:20 1999 George Lebl <jirka@5z.com>
323 * doc/gob.1.in: describe BUGS better
325 Sat Nov 13 16:20:41 1999 George Lebl <jirka@5z.com>
327 * src/lexer.l: don't kill C++ style comments from C blocks
329 Sat Nov 13 16:16:59 1999 George Lebl <jirka@5z.com>
331 * src/{lexer.l,main.c,out.c}: fixed spurious newline printing, don't
332 kill comments from C blocks so that line counts are right, accept
333 newlines in strings, and don't take \'\"\' as a string delimiter
335 Sat Nov 13 14:53:26 1999 George Lebl <jirka@5z.com>
337 * src/main.c: don't add gtk_object_class to class_init if we only
338 have non-GtkObject overrides to avoid warning
340 Sat Nov 13 14:31:25 1999 George Lebl <jirka@5z.com>
342 * configure.in,src/Makefile.am,doc/Makefile.am: check for
343 ../NOINST_GOB and in case it's found don't install self
345 Fri Nov 12 16:25:35 1999 George Lebl <jirka@5z.com>
347 * configure.in,Makefile.am,src/main.c: don't use popt, our arguments
348 are simple enough and popt doesn't seem to be widely used yet
350 Sun Sep 05 22:08:40 1999 George Lebl <jirka@5z.com>
354 Sun Sep 05 22:08:33 1999 George Lebl <jirka@5z.com>
356 * doc/gob.1.in: updated for private virtual and signal wrappers
358 Sun Sep 05 21:50:19 1999 George Lebl <jirka@5z.com>
360 * configure.in: raise version and actually set POPT_LIB correctly
362 * src/Makefile.am: use POPT_LIB
364 Sun Sep 05 21:45:54 1999 George Lebl <jirka@5z.com>
366 * src/tree.h,src/main.c,src/parse.y: add support for private signals
369 * src/parse.y: fix bug with bogus vararg methods
371 Sun Sep 04 17:44:37 1999 George Lebl <jirka@5z.com>
375 Sat Sep 04 17:18:22 1999 George Lebl <jirka@5z.com>
377 * src/lexer.l,src/parse.y,src/main.c,src/tree.[ch]: support
378 variable arguments for public and private methods
380 Sat Sep 04 16:51:11 1999 George Lebl <jirka@5z.com>
382 * lexer.l,parse.y: accept const in parameter lists
384 Sun Aug 29 13:46:33 1999 George Lebl <jirka@5z.com>
388 Sat Aug 28 23:36:48 1999 George Lebl <jirka@5z.com>
390 * src/main.[ch],parse.y: make error/warning reporting public
391 and use it to report depreciated use of 'this'
393 Sat Aug 28 22:41:52 1999 George Lebl <jirka@5z.com>
395 * src/tree.[ch],parse.y,main.c: check for duplicate variables and
396 signals and arguments as well.
398 Sat Aug 28 22:00:19 1999 George Lebl <jirka@5z.com>
400 * src/parse.y,src/main.c: change "this" to "self", but accept "this"
403 * src/main.c: check for duplicate methods, and warn on non-public
406 * configure.in: change to version 0.90.0
408 * doc/gob.1.in: change this to self
410 Tue Aug 24 20:37:26 1999 George Lebl <jirka@5z.com>
414 Thu Aug 19 03:18:03 1999 George Lebl <jirka@5z.com>
416 * src/main.c: also count overrides to avoid an unused variable on
419 Thu Aug 19 03:08:49 1999 George Lebl <jirka@5z.com>
421 * src/parse.y: in a check, we can check not only about numbers
422 but for tokens as well
424 Wed Aug 18 12:54:17 1999 George Lebl <jirka@5z.com>
428 Tue Aug 17 22:24:47 1999 George Lebl <jirka@5z.com>
430 * src/lexer.l,src/parse.y: don't use reserved words for check type
433 * src/{lexer.l,parse.y,tree.[ch],main.c}: add #line's to output
436 * src/out.[ch]: new functions for output so that we can easily add
439 * src/main.c: fix get/set arguments
441 * doc/gob.1.in: updated for newer version and spellchecked, also
442 gob.1 is generated by configure now to get versions correct
444 * gob.spec.in: added a spec file
446 Fri Jul 30 02:19:05 1999 George Lebl <jirka@5z.com>
448 * src/parse.y: accept simple char types
450 * src/main.c: make prototypes look better, and don't output arg stuff
451 when it won't be used
453 * Makefile,src/Makefile: add test make target